Tool Comparison: Difference between revisions

From OSDev.wiki
Jump to navigation Jump to search
[unchecked revision][unchecked revision]
Content deleted Content added
No edit summary
Solar (talk | contribs)
Line 120: Line 120:
{| {{wikitable}}
{| {{wikitable}}
|-
|-
! Name
! rowspan=2 | Name
! OMF/OBJ
! rowspan=2 | OMF/OBJ
! Input
! colspan=4 | Input
! Output
! colspan=5 | Output
! Flat Binary Images
! rowspan=2 | Flat Binary Images
! Set Code Address
! rowspan=2 | Set Code Address
! Library Support
! rowspan=2 | Library Support
! Supports Debug Info
! rowspan=2 | Supports Debug Info
! 32bit Code
! rowspan=2 | 32bit Code
|-
! Win32/ COFF
! ELF
! A.OUT
! Others
! Win32/ PE
! Win32/ DLL
! ELF
! A.OUT
! Others
|-
|-
! [[JLoc]]
! [[JLoc]]
| {{Yes}}
| {{Yes}}
|
|
|
|
|
| {{No}}
| {{No}}
| {{No}}
| {{No}}
| DOS/COM
| DOS/COM
| {{Yes}}
| {{Yes}}
Line 142: Line 159:
! [[ALink]]
! [[ALink]]
| {{Yes}}
| {{Yes}}
| {{Yes}}
| Win32/COFF DJGPP/COFF
| {{No}}
| DOS/COM DOS/EXE Win32/PE Win32/DLL
| {{No}}
| DJGPP/COFF
| {{Yes}}
| {{Yes}}
| {{No}}
| {{No}}
| DOS/COM DOS/EXE
| {{No}}
| {{No}}
| {{Yes}}
| {{Yes}}
Line 152: Line 176:
! [[LD]]
! [[LD]]
| {{Yes}}
| {{Yes}}
| {{Yes}}
| OMF/COFF DJGPP/COFF Win32/COFF A.OUT ELF
| {{Yes}}
| ELF A.OUT Win32/PE Win32/DLL +more
| {{Yes}}
| DJGPP/COFF OMF/COFF
| {{Yes}}
| {{Yes}}
| {{Yes}}
| {{Yes}}
| various
| {{Yes}}
| {{Yes}}
| {{Yes}}
| {{Yes}}
Line 162: Line 193:
! [[TLink]]
! [[TLink]]
| {{Yes}}
| {{Yes}}
| {{Yes}}
| Win32/COFF
| {{No}}
| DOS/EXE DOS/COM Win32/DLL Win32/PE
| {{No}}
|
| {{Yes}}
| {{Yes}}
| {{No}}
| {{No}}
| DOS/EXE DOS/COM
| {{No}}
| {{No}}
| {{Yes}}
| {{Yes}}
Line 172: Line 210:
! [[Link]]
! [[Link]]
| {{Yes}}
| {{Yes}}
| {{Yes}}
| Win32/COFF
| {{No}}
| DOS/EXE DOS/COM Win32/PE Win32/DLL LE
| {{No}}
|
| {{Yes}}
| {{Yes}}
| {{No}}
| {{No}}
| DOS/EXE DOS/COM LE
| {{No}}
| {{No}}
| {{Yes}}
| {{Yes}}
Line 183: Line 228:
| {{Yes}}
| {{Yes}}
|
|
|
|
|
| {{No}}
| {{No}}
| {{No}}
| {{No}}
| DOS/EXE
| DOS/EXE
| {{No}}
| {{No}}
Line 192: Line 244:
! [[WLink]]
! [[WLink]]
| {{Yes}}
| {{Yes}}
| {{Yes}}
| Win32/COFF ELF
| {{Yes}}
| DOS/EXE DOS/COM LE ELF Win32/PE Win32/DLL Pharlap Novell_NLM Causeway QNX
| {{No}}
|
| {{Yes}}
| {{Yes}}
| {{Yes}}
| {{No}}
| DOS/EXE DOS/COM LE Pharlap Novell_NLM Causeway QNX
| {{Yes}}
| {{Yes}}
| {{Yes}}
| {{Yes}}

Revision as of 08:01, 13 July 2009

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
Sol_asm No YesTemplate:Ref Yes No Yes Yes Yes Yes
  • 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.
  • Template:Note Sol_Asm uses its own syntax, which looks like the Intel syntax.

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
Win32/ COFF ELF A.OUT Others Win32/ PE Win32/ DLL ELF A.OUT Others
JLoc Yes No No No No DOS/COM Yes Yes No OMF/OBJ Yes
ALink Yes Yes No No DJGPP/COFF Yes Yes No No DOS/COM DOS/EXE No Yes Yes No Yes
LD Yes Yes Yes Yes DJGPP/COFF OMF/COFF Yes Yes Yes Yes various Yes Yes Yes ECOFF DWARF STABS Yes
TLink Yes Yes No No Yes Yes No No DOS/EXE DOS/COM No Yes Yes OMF/OBJ Yes
Link Yes Yes No No Yes Yes No No DOS/EXE DOS/COM LE No Yes Yes CODEVIEW DWARF Yes
VAL Yes No No No No DOS/EXE No No No Yes No
WLink Yes Yes Yes No Yes Yes Yes No DOS/EXE DOS/COM LE Pharlap Novell_NLM Causeway QNX Yes Yes Yes WATCOM CODEVIEW DWARF Yes