Tool Comparison: Difference between revisions
Jump to navigation
Jump to search
[unchecked revision] | [unchecked revision] |
Content deleted Content added
No edit summary |
|||
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 |
||
|- |
|||
⚫ | |||
! ELF |
|||
! A.OUT |
|||
! Others |
|||
⚫ | |||
⚫ | |||
! 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}} |
|||
⚫ | |||
| {{No}} |
|||
⚫ | |||
| {{No}} |
|||
| DJGPP/COFF |
|||
| {{Yes}} |
|||
| {{Yes}} |
|||
| {{No}} |
|||
| {{No}} |
|||
⚫ | |||
| {{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}} |
|||
⚫ | |||
| {{Yes}} |
|||
| {{Yes}} |
|||
| {{Yes}} |
|||
| {{Yes}} |
|||
| various |
|||
| {{Yes}} |
| {{Yes}} |
||
| {{Yes}} |
| {{Yes}} |
||
Line 162: | Line 193: | ||
! [[TLink]] |
! [[TLink]] |
||
| {{Yes}} |
| {{Yes}} |
||
| {{Yes}} |
|||
⚫ | |||
| {{No}} |
|||
⚫ | |||
| {{No}} |
|||
| |
|||
| {{Yes}} |
|||
| {{Yes}} |
|||
| {{No}} |
|||
| {{No}} |
|||
| DOS/EXE DOS/COM |
|||
| {{No}} |
| {{No}} |
||
| {{Yes}} |
| {{Yes}} |
||
Line 172: | Line 210: | ||
! [[Link]] |
! [[Link]] |
||
| {{Yes}} |
| {{Yes}} |
||
| {{Yes}} |
|||
⚫ | |||
| {{No}} |
|||
⚫ | |||
| {{No}} |
|||
| |
|||
| {{Yes}} |
|||
| {{Yes}} |
|||
| {{No}} |
|||
| {{No}} |
|||
⚫ | |||
| {{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}} |
|||
⚫ | |||
| {{Yes}} |
|||
⚫ | |||
| {{No}} |
|||
| |
|||
| {{Yes}} |
|||
| {{Yes}} |
|||
| {{Yes}} |
|||
| {{No}} |
|||
⚫ | |||
| {{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 |
- 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 | |||||||
---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
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 |