在我看来,为asm操作命令操作数的逻辑方法是 src,dest ,因为英语通常规定从这里到那里而不是相反。这是 AT& T语法,并且很少使用(或者至少,我从来没有机会用它编程)。相反的是 Intel语法,并且被广泛使用。这些名称对应于名义上起源于它们的公司。 [1]
任何人都可以提供一个理由,说明为什么英特尔语法被接受为标准,以及为什么这个排序首先被开发和使用?我假设AT& T语法更自然,我错了吗?
答案 0 :(得分:5)
任何人都可以提供为什么英特尔语法被接受为标准
的原因
嗯,这不是标准。没有ISO或ECMA标准规定了汇编语法。英特尔符号被大量使用,原因很简单,因为它在英特尔处理器手册中有详细记录,英特尔是一家非常成功的公司,设计并销售了批次处理器。
对于AT& T来说,这是不可能的。它是一家电话公司,在处理器设计方面从未做过太多任何事情,甚至不再存在。他们做了一些非常严厉的决定,让他们破产。该商标名称是由另一家电话公司SBC购买的,该公司随后重新命名。着名的贝尔实验室,Unix和C的创始人,以及语法,被分拆为另一家名为朗讯的公司。不再是阿尔卡特购买的。谁拥有Unix这些天有点不清楚,很多法律诉讼,但Novell似乎领先。
操作数顺序只是另一个小端与大端辩论。如果选择两个,则另一个将被视为错误。
答案 1 :(得分:4)
dest, src
顺序背后的C风格推理:它类似于表达式中操作数的顺序,例如
mov dest, src
看起来像
dest = src
或
add dest, src
看起来像
dest += src
(所以这些说明在视觉上类似于他们实际做的事情。)这可能是一个合乎逻辑的解释。