为什么Intel汇编语法为dest,src?

wil*_*erg 0 syntax assembly intel

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

任何人都可以提供一个理由来解释为什么英特尔语法被接受为标准,以及为什么这个排序首先被开发和使用?假设AT&T语法更自然,我错了吗?

小智 5

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

mov dest, src
Run Code Online (Sandbox Code Playgroud)

好像

dest = src
Run Code Online (Sandbox Code Playgroud)

或者

add dest, src
Run Code Online (Sandbox Code Playgroud)

好像

dest += src
Run Code Online (Sandbox Code Playgroud)

(因此这些说明在视觉上类似于它们实际执行的操作。)这可能是一个合乎逻辑的解释。


Han*_*ant 5

任何人都可以提供为什么英特尔语法被接受为标准的原因

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

对于AT&T来说,这是不可能的.这是一家电话公司,从未在处理器设计方面做过太多任何事情,甚至不再存在.他们做了一些非常严厉的决定,让他们破产.该商标名称是由另一家电话公司SBC购买的,该公司随后重新命名.着名的贝尔实验室,Unix和C的创始人,以及语法,被分拆为另一家名为朗讯的公司.不再是阿尔卡特购买的.谁拥有Unix这些天有点不清楚,很多法律诉讼,但Novell似乎领先.

操作数顺序只是另一个小端和大端辩论.如果选择两个,则另一个将始终认为是错误的.