This is a comparison of various operating system development tools.
x86 Assemblers
- Template:Note using the
.intel_syntax
directive. Several opcodes will still use the AT&T name.
- Template:Note While GAS normally writes only "pure" 32-bit i386 code, it has limited support for writing code to run in real mode or in 16-bit protected mode code segments.
- Template:Note You have to choose the instruction set at compile time. GAS can not assemble for more than one operating mode at a time.
- Template:Note 64-bit support is only available in NASM 2.x.
- Template:Note Sol_Asm uses its own syntax, which looks like the Intel syntax.
Compilers
|
Extensions
|
Output format
|
|
Inline Assembly
|
ELF
|
a.out
|
flat
|
PE
|
gcc
|
Yes
|
Yes
|
Yes
|
Yes
|
Yes
|
Visual Studio
|
Yes
|
No
|
No
|
NoTemplate:Ref
|
Yes
|
Linkers
Name
|
OMF/OBJ
|
Input
|
Output
|
Flat Binary Images
|
Set Code Address
|
Library Support
|
Supports Debug Info
|
32bit Code
|
JLoc
|
Yes
|
|
DOS/COM
|
Yes
|
Yes
|
No
|
OMF/OBJ
|
Yes
|
ALink
|
Yes
|
Win32/COFF DJGPP/COFF
|
DOS/COM DOS/EXE Win32/PE Win32/DLL
|
No
|
Yes
|
Yes
|
No
|
Yes
|
LD
|
Yes
|
OMF/COFF DJGPP/COFF Win32/COFF A.OUT ELF
|
ELF A.OUT Win32/PE Win32/DLL +more
|
Yes
|
Yes
|
Yes
|
ECOFF DWARF STABS
|
Yes
|
TLink
|
Yes
|
Win32/COFF
|
DOS/EXE DOS/COM Win32/DLL Win32/PE
|
No
|
Yes
|
Yes
|
OMF/OBJ
|
Yes
|
Link
|
Yes
|
Win32/COFF
|
DOS/EXE DOS/COM Win32/PE Win32/DLL LE
|
No
|
Yes
|
Yes
|
CODEVIEW DWARF
|
Yes
|
VAL
|
Yes
|
|
DOS/EXE
|
No
|
No
|
No
|
Yes
|
No
|
WLink
|
Yes
|
Win32/COFF ELF
|
DOS/EXE DOS/COM LE ELF Win32/PE Win32/DLL Pharlap Novell_NLM Causeway QNX
|
Yes
|
Yes
|
Yes
|
WATCOM CODEVIEW DWARF
|
Yes
|