Assembly 内存中的字节与内容之间的差异?(英特尔格式)

Assembly 内存中的字节与内容之间的差异?(英特尔格式),assembly,Assembly,两者的确切区别是什么 mov eax, [ebx] 及 第一个将内存中位于ebx位置的4个字节移动到eax,第二个将ebx的内容移动到eax。有什么区别?这是什么意思 mov eax, [ebx] 等效于(C\C++)的 及 到 第二种说法是: 将a的值复制到b 第一个说: 复制在地址中找到的内存块的值 这是把房子放在一辆拖车上,移动它和仅仅移动“523第一大道”之间的区别。正如20多年前有人教我的,你想要这个盒子,还是[box]里有什么?所以对于第一个,ebx的内存地址被放入eax寄存器

两者的确切区别是什么

mov eax, [ebx] 

第一个将内存中位于
ebx
位置的4个字节移动到
eax
,第二个将ebx的内容移动到eax。有什么区别?这是什么意思

mov eax, [ebx]
等效于(C\C++)的

第二种说法是:

将a的值复制到b

第一个说:

复制在地址中找到的内存块的值


这是把房子放在一辆拖车上,移动它和仅仅移动“523第一大道”之间的区别。正如20多年前有人教我的,你想要这个盒子,还是[box]里有什么?所以对于第一个,ebx的内存地址被放入eax寄存器中?我不确定我是否理解你所说的内存块的值,而不是内存地址!实际价值!相反,eax的值转到ebx。关于内存块部分的值:ebx可以保存一个实值,例如
6
,或者一个内存地址,例如
800100
。所以第一个陈述是:转到ebx指出的地址,找出你在那里找到的值(假设它是一个
8
)并复制到eaxOh中,我在做Intel格式,而不是ATT格式,所以它是mov目标,源。因此,它将ebx的值移动到eax中。谢谢你对内存块的解释。我现在明白了。:)
mov eax, [ebx]
*b = a;
mov eax, ebx
b = a;