Tool Comparison: Difference between revisions

From OSDev.wiki
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}}
| {{Yes}}{{ref|2}}
| {{Yes}}{{ref|2}}
| {{Yes}}
| {{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]]
{{note|2}} 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 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