Tool Comparison

来自osdev
跳到导航 跳到搜索

这里是各种操作系统开发工具的比较。

= x86汇编程序 =

Syntax Output Format Instruction Set
AT&T Intel ELF a.out COFF flat 16 bit 32 bit 64 bit
GAS Yes Yes[1] Yes Yes Yes Yes Yes[2] Yes Yes[3]
NASM No Yes Yes Yes Yes Yes Yes Yes Yes[4]
YASM Yes Yes Yes No Yes Yes Yes Yes Yes
FASM No Yes Yes No Yes Yes Yes Yes Yes
JWASM No Yes Yes No Yes Yes Yes Yes Yes
MASM[5] No Yes No No Yes Yes Yes Yes Yes[6]
Sol_asm No Yes[7] Yes No n/a Yes Yes Yes Yes
AS86 No Yes No No No Yes Yes Yes No
llvm-mc Yes Yes Yes Yes Yes No No Yes Yes
  •   使用.intel_syntax 指令。 几个操作码仍将使用AT&T的名称。
  •   虽然GAS通常只编写 “纯” 32位i386代码,但它具有 有限支持,用于编写以实际模式或16位受保护模式代码段运行的代码。
  •   你必须在 (汇编器的) 编译时选择指令集。 GAS不能一次汇编多个操作模式,即如果你想混合两个模式,你需要一个GAS 32bit和一个GAS 64bit。
  •   64位支持仅在NASM 2.X中可用。
  •   64位支持仅在名为ml64的单独可执行文件中可用。
  •   Sol_Asm使用自己的语法,它看起来像Intel语法。

编译器

Extensions Output format
Inline Assembly ELF a.out flat PE COFF 16-bit code segments 32-bit code segments 64-bit code segments
GCC Yes Yes Yes Yes Yes Yes ? Yes Yes
Clang Yes Yes Yes No Yes Yes No Yes Yes
msvc Yes No No No[8] Yes Yes Version 4.X Yes Yes
icl Yes No No No Yes Yes No Yes Yes
Watcom Yes No No No Yes Yes Yes Yes Yes
Smaller C Yes Yes Yes Yes Yes No Yes (incl. huge & unreal mode(l)s)[9] Yes No

链接器

Name Input Output Flat Binary Images Set Code Address Library Support Supports Debug Info 32bit Code
OMF/ OBJ 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
smlrl No No Yes No Yes No Yes Yes DOS/COM DOS/EXE MACH-O Yes Yes Yes No Yes
LLD Yes Yes Yes Yes