0

在我看来,为 asm 操作排序操作数的逻辑方式是src, dest,因为英语通常规定从这里到那里而不是相反。这是AT&T 语法,很少使用(或者至少,我从未有机会使用它进行编程)。相反的是Intel 语法,并且被广泛使用。这些名称对应于名义上起源它们的公司。[1]

谁能提供为什么英特尔语法被接受为标准的原因,以及为什么首先开发和使用这种排序?我认为 AT&T 语法更自然的假设是错误的吗?

4

2 回答 2

5

顺序背后的 C 风格推理dest, src:它类似于表达式中操作数的顺序,例如

mov dest, src

好像

dest = src

或者

add dest, src

好像

dest += src

(所以这些指令在视觉上类似于它们实际所做的。)这可能是一个合乎逻辑的解释。

于 2012-12-28T11:17:18.097 回答
5

谁能提供为什么英特尔语法被接受为标准的原因

好吧,这不是一个标准。没有规定汇编语法的 ISO 或 ECMA 标准。英特尔符号被大量使用,原因很简单,它在英特尔处理器手册中有很好的记录,英特尔是一家非常成功的公司,设计和销售了很多处理器。

AT&T 不能这么说。它是一家电话公司,从未在处理器设计方面做过很多事情,甚至已不复存在。他们做出了一些非常愚蠢的决定,使他们破产。该商品名被另一家电话公司 SBC 收购,然后重新命名。著名的贝尔实验室,Unix 和 C 的鼻祖,以及语法,被剥离为另一家名为 Lucent 的公司。也不再存在,被阿尔卡特收购。这些天谁拥有 Unix 有点不清楚,有很多诉讼,但 Novell 似乎领先。

操作数顺序只是另一个小端与大端的争论。如果选择两个,一个总是会被另一个认为是错误的。

于 2012-12-28T11:47:30.597 回答