AT&T 语法是否适用于英特尔平台?

Does AT&T syntax work on intel platform?

我正在学习汇编。

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

因此无论语法如何,它都可以在英特尔处理器上运行,还是必须是英特尔语法才能在英特尔平台上运行!!我很困惑??

谢谢。

att vs intel 语法已在此处和其他地方多次介绍。

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

对于这种情况,存在由英特尔文档定义并由英特尔汇编程序支持的英特尔格式。然后由其他汇编程序支持排序。这些指令很接近或相同,它们可能有兼容模式,也许它们有自己的指令。例如 as86(或者它是 asm86 还是 a86?)tasm、masm 和 currently nasm。然后你有了这个 AT&T 语法,某个地方的某个人(ATT?)决定用一种愚蠢的汇编语言制作一个汇编器,这种语言与英特尔文档完全不匹配。这成为了 Intel vs AT&T 语法的事情。 gnu 汇编程序也因混淆现有的汇编语言而闻名,他们显然使用 AT&T 并加入了自己的细微差别。他们可能有一个英特尔语法开关,你应该检查一下。

你应该问的问题是目标,像 gnu assembler for x86 这样的汇编程序通常能够为各种 x86 风格生成代码,所以你需要确保它与你的计算机匹配(如果你很可能会这样做)不要添加任何目标 type/specific 选项)。

没有理由假设 AT&T 语法汇编器(gnu 汇编器(gas 或 as))不能工作。