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
Line 13: Line 13:
! [[Assembly#AT&T Syntax|AT&T]]
! [[Assembly#AT&T Syntax|AT&T]]
! [[Assembly#Intel Syntax|Intel]]
! [[Assembly#Intel Syntax|Intel]]
! elf
! [[ELF]]
! a.out
! [[a.out]]
! flat
! flat
! 16 bit
! 16 bit
Line 66: Line 66:


{{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

==Compilers==
{| {{wikitable}}
|-
!
! Extensions
! colspan=4 | Output format
|-
!
! Inline Assembly
! [[ELF]]
! [[a.out]]
! flat
! [[PE]]
|-
! gcc
| {{Yes}}
| {{Yes}}
| {{Yes}}
| {{Yes}}
| {{Yes}}
|-
! Visual Studio
| {{No}}
| {{No}}
| {{No}}
| {{No}}
| {{Yes}}
|}

Revision as of 04:19, 2 December 2006

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 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

Compilers

Extensions Output format
Inline Assembly ELF a.out flat PE
gcc Yes Yes Yes Yes Yes
Visual Studio No No No No Yes