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.
- Template:Note 64-bit support is only available in a separate executable, named ml64.
Compilers
|
Extensions
|
Output format
|
|
Inline Assembly
|
ELF
|
a.out
|
flat
|
PE
|
gcc
|
Yes
|
Yes
|
Yes
|
Yes
|
Yes
|
msvc
|
Yes
|
No
|
No
|
NoTemplate:Ref
|
Yes
|
icl
|
Yes
|
No
|
No
|
No
|
Yes
|
Linkers
Name
|
OMF/OBJ
|
Input
|
Output
|
Flat Binary Images
|
Set Code Address
|
Library Support
|
Supports Debug Info
|
32bit Code
|
Win32/ COFF
|
ELF
|
A.OUT
|
Others
|
Win32/ PE
|
Win32/ DLL
|
ELF
|
A.OUT
|
Others
|
JLoc
|
Yes
|
|
|
|
|
No
|
No
|
No
|
No
|
DOS/COM
|
Yes
|
Yes
|
No
|
OMF/OBJ
|
Yes
|
ALink
|
Yes
|
Yes
|
No
|
No
|
DJGPP/COFF
|
Yes
|
Yes
|
No
|
No
|
DOS/COM DOS/EXE
|
No
|
Yes
|
Yes
|
No
|
Yes
|
LD
|
Yes
|
Yes
|
Yes
|
Yes
|
DJGPP/COFF OMF/COFF
|
Yes
|
Yes
|
Yes
|
Yes
|
various
|
Yes
|
Yes
|
Yes
|
ECOFF DWARF STABS
|
Yes
|
TLink
|
Yes
|
Yes
|
No
|
No
|
|
Yes
|
Yes
|
No
|
No
|
DOS/EXE DOS/COM
|
No
|
Yes
|
Yes
|
OMF/OBJ
|
Yes
|
Link
|
Yes
|
Yes
|
No
|
No
|
|
Yes
|
Yes
|
No
|
No
|
DOS/EXE DOS/COM LE
|
No
|
Yes
|
Yes
|
CODEVIEW DWARF
|
Yes
|
VAL
|
Yes
|
|
|
|
|
No
|
No
|
No
|
No
|
DOS/EXE
|
No
|
No
|
No
|
Yes
|
No
|
WLink
|
Yes
|
Yes
|
Yes
|
No
|
|
Yes
|
Yes
|
Yes
|
No
|
DOS/EXE DOS/COM LE Pharlap Novell_NLM Causeway QNX
|
Yes
|
Yes
|
Yes
|
WATCOM CODEVIEW DWARF
|
Yes
|