Tool Comparison

From OSDev.wiki
Revision as of 19:38, 9 July 2009 by Cic (talk | contribs) (Minor format improvements)
Jump to navigation Jump to search

This is a comparison of various operating system development tools.

x86 Assemblers

Syntax Output Format Instruction Set
AT&T Intel ELF a.out flat 16 bit 32 bit 64 bit
GAS Yes YesTemplate:Ref Yes Yes Yes YesTemplate:Ref Yes YesTemplate:Ref
NASM No Yes Yes Yes Yes Yes Yes YesTemplate:Ref
YASM Yes Yes Yes No Yes Yes Yes Yes
FASM No Yes Yes No Yes Yes Yes Yes
JWASM No Yes Yes No Yes Yes Yes No
  • 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.

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