Tool Comparison

From OSDev Wiki
Revision as of 09:40, 7 July 2008 by Jnc100 (talk | contribs) (fixup link)
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 Yes[1] Yes Yes Yes Yes[2] Yes Yes[3]
NASM No Yes Yes Yes Yes Yes Yes Yes[4]
YASM Yes Yes Yes No Yes Yes Yes Yes
FASM No Yes Yes No Yes Yes Yes Yes

  using .intel_syntax directive. Several opcodes will still use the AT&T name.

  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]

  You have to choose the instruction set at compile time. GAS can not assemble for more than one operating mode at a time

  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 No[5] Yes

  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
Retrieved from "https://wiki.osdev.org/index.php?title=Tool_Comparison&oldid=5830"