将寄存器bx的内容移入寄存器ax
MOV ax, bx
Run Code Online (Sandbox Code Playgroud)
为什么语法如此奇怪?
Mov ax,(to)bx实际上是指to的move内容,是否有任何历史原因以这种方式定义它?bxax
lox*_*xxy 10
考虑一下代码
x = 5
Run Code Online (Sandbox Code Playgroud)
这可能将值5分配给x.你想要5 = x吗?
同样,您不应该尝试将英语与编码进行比较.这在历史上也发生了什么.英语可能会说这就是这个.但计算机架构师就是这样的.
所以基本上是这样的过程:
X := Y
Run Code Online (Sandbox Code Playgroud)
可以更好地概括为:
MOV X, Y
Run Code Online (Sandbox Code Playgroud)
MOV ax, bx
这意味着,ax = bx(将bx移动到ax,更准确地说,将bx复制到ax).在此汇编语法中,第一个操作数是目标 - 这是常见的情况,例如,在C函数中:
strcpy(dest, source);
在AT&T Assembler中,第一个操作数是源.一般来说,它看起来很奇怪,因此AT&T Assembler用户会犯下有趣的错误.