Tool Comparison: Difference between revisions

From OSDev Wiki
Jump to navigation Jump to search
Line 63: Line 63:
{{note|1}} using .intel_syntax directive. Several opcodes will still use the AT&T name.
{{note|1}} using .intel_syntax directive. Several opcodes will still use the AT&T name.


{{note|2}} 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 [[http://(削除) www.gnu (削除ここまで).org(削除) /software (削除ここまで)/binutils/(削除) manual/gas-2.9.1 (削除ここまで)/(削除) html_chapter (削除ここまで)/(削除) as_16 (削除ここまで).html#(削除) SEC205 (削除ここまで)Here]]
{{note|2}} 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 [[http://(追記) sourceware (追記ここまで).org/binutils/(追記) docs (追記ここまで)/(追記) as (追記ここまで)/(追記) i386_002d16bit (追記ここまで).html#(追記) i386_002d16bit (追記ここまで)Here]]


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

Revision as of 09:40, 7 July 2008

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"