Tool Comparison

From OSDev.wiki
Revision as of 17:21, 19 November 2007 by Combuster (talk | contribs) (annotated nasm+64bit combination (not an official release))
Jump to navigation Jump to search

This is a comparison of various osdev 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

Template:Note using .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. See [Here]

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 currently only available in the NASM 2.0 release candidates.

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

Template:Note Visual Studio can emit .COM files

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 No Yes Yes WATCOM CODEVIEW DWARF Yes