Tool Comparison: Difference between revisions
From OSDev Wiki
Jump to navigation
Jump to search
m (→x86 Assemblers: modified due to NASM release 2.0)
m (fixup link)
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"