为什么x86组件没有标准

时间:2015-02-20 21:12:38

标签: assembly x86

为什么没有x86(或任何其他)汇编编程语言的标准。例如,C编程语言由ANSI标准化。

这可以使它没有那么多不同的汇编程序

1 个答案:

答案 0 :(得分:2)

汇编语言只是CPU指令,可读性替换为缩写命令。

每个CPU架构都不同,并且有不同的指令 - x86代码不能在ARM或MIPS CPU上运行,相同的架构可能有多个版本和功能(SSE,MMX,NEON等)。

因此,不同架构的汇编程序会有不同的指令,没有办法将其标准化。你唯一可以标准化的是内存和寄存器之间的MOV指令,但是如果你想要速度,你将使用你的架构提供的所有不兼容的技巧,比如SSE来批量移动内存区域。

x86架构非常流行,它有两种不同的汇编语言标准 - NASM和GNU汇编器(gas),其他架构通常只有GNU汇编器。