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 (of the assembler). GAS can not assemble for more than one operating mode at a time, i.e. you would need one GAS for 32bit and one GAS for 64bit if you'd want to mix those two.
- Template:Note 64-bit support is only available in NASM 2.x.
- Template:Note Because of the license it may be illegal to use MASM for "non-windows development"
- Template:Note 64-bit support is only available in a separate executable, named ml64.
- 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
|
COFF
|
16-bit code segments
|
32-bit code segments
|
64-bit code segments
|
gcc
|
Yes
|
Yes
|
Yes
|
Yes
|
Yes
|
Yes
|
?
|
Yes
|
Yes
|
clang
|
Yes
|
Yes
|
Yes
|
No
|
Yes
|
Yes
|
No
|
Yes
|
Yes
|
msvc
|
Yes
|
No
|
No
|
NoTemplate:Ref
|
Yes
|
Yes
|
Version 4.X
|
Yes
|
Yes
|
icl
|
Yes
|
No
|
No
|
No
|
Yes
|
Yes
|
No
|
Yes
|
Yes
|
watcom
|
Yes
|
No
|
No
|
No
|
Yes
|
Yes
|
Yes
|
Yes
|
Yes
|
Linkers
Name
|
Input
|
Output
|
Flat Binary Images
|
Set Code Address
|
Library Support
|
Supports Debug Info
|
32bit Code
|
OMF/ OBJ
|
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
|