Gcc 美国电话电报公司;语法在英特尔平台上不起作用吗?

Gcc 美国电话电报公司;语法在英特尔平台上不起作用吗?,gcc,assembly,x86,intel,Gcc,Assembly,X86,Intel,我在学习组装 我知道gcc支持at&t语法,但我希望我的程序在英特尔处理器上运行 因此,它是否可以在英特尔处理器上工作,而不考虑语法,或者它必须是英特尔语法才能在英特尔平台上工作!!我很困惑 谢谢。att vs intel语法已经在这里和其他地方介绍了很多次 汇编语言是一种由汇编程序定义的语言,是一种特殊的程序,用于将ASCII汇编语言转换为您感兴趣的特定目标的机器代码。与C语言或C++编译器不同,在这里有一个定义语言的标准,可以有7个汇编程序用于同一目标处理器,没有理由假定汇编语言必须以任何方

我在学习组装

我知道gcc支持at&t语法,但我希望我的程序在英特尔处理器上运行

因此,它是否可以在英特尔处理器上工作,而不考虑语法,或者它必须是英特尔语法才能在英特尔平台上工作!!我很困惑


谢谢。

att vs intel语法已经在这里和其他地方介绍了很多次

汇编语言是一种由汇编程序定义的语言,是一种特殊的程序,用于将ASCII汇编语言转换为您感兴趣的特定目标的机器代码。与C语言或C++编译器不同,在这里有一个定义语言的标准,可以有7个汇编程序用于同一目标处理器,没有理由假定汇编语言必须以任何方式兼容。重要的是产品的机器代码,如果机器代码与同一目标匹配,那么无论出于何种原因,都要使用您最喜欢的工具

在本例中,英特尔文件定义了英特尔格式,英特尔汇编程序支持该格式。然后由其他汇编程序支持sorta。指令很接近或相同,它们可能有兼容模式,也可能有自己的指令。例如as86(或者是asm86还是a86?)tasm、masm和当前的nasm。然后你有了AT&T的语法,某个地方的某个人(ATT?)决定用一种愚蠢的汇编语言来制作一个汇编程序,它与英特尔的文档根本不匹配。这就成了英特尔vs AT&T的语法。gnu汇编程序也以搞乱现有的汇编语言而闻名,他们显然在使用AT&T时加入了自己的细微差别。他们可能有一个英特尔语法开关,你应该检查一下

您应该问的问题是目标,像gnu assembler for x86这样的汇编器通常能够为各种风格的x86生成代码,因此您需要确保它与您的计算机匹配(如果您不添加任何目标类型/特定选项,很可能会匹配)


没有理由假设AT&T语法汇编程序(gnu汇编程序(gas或as))无法工作。

err,gnu as同时支持英特尔和AT&T语法。看。不仅如此,AT&T也是默认的。CPU不关心汇编代码(例如“ADD AX,0x1234”),只关心构建它的机器代码(0x05,0x34,0x12)。更糟糕的是,您可能把
AT&T
amd
混淆了。