Tool Comparison: Difference between revisions
Jump to navigation
Jump to search
[unchecked revision] | [unchecked revision] |
Content added Content deleted
(Yasm supports 16bit/32bit & 64bit instructions.) |
(GNU Assembler supports 16bit instructions.) |
||
Line 20: | Line 20: | ||
| {{Yes}} |
| {{Yes}} |
||
| {{Yes}} |
| {{Yes}} |
||
⚫ | |||
| ? |
|||
| {{Yes}} |
| {{Yes}} |
||
| {{Yes}}{{ref|2}} |
| {{Yes}}{{ref|2}} |
||
⚫ | |||
| {{Yes}}{{ref|3}} |
|||
|- |
|- |
||
! [[NASM]] |
! [[NASM]] |
||
Line 58: | Line 58: | ||
{{note|1}} using .intel_syntax directive |
{{note|1}} using .intel_syntax directive |
||
{{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]] |
|||
⚫ | |||
⚫ |
Revision as of 21:37, 30 November 2006
This is a comparison of various osdev tools
Assemblers
AT&T syntax | Intel syntax | elf | a.out | flat | 16 bit instructions | 32 bit instructions | 64 bit instructions | |
---|---|---|---|---|---|---|---|---|
gas | Yes | YesTemplate:Ref | Yes | Yes | Yes | YesTemplate:Ref | Yes | YesTemplate:Ref |
NASM | No | Yes | Yes | Yes | Yes | Yes | Yes | No |
Yasm | Yes | Yes | Yes | No | Yes | Yes | Yes | Yes |
fasm | No | Yes | Yes | No | Yes | Yes | Yes | Yes |
Template:Note using .intel_syntax directive
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. See [Here]
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