下面的内存段。
在第一个 add 指令(add eax, 3)上,它将 eax 的指针向右移动 3 个点。
因此,EAX = 12, 17, A3, 00。(这个我明白)
但是,在第二条添加指令(add ebx, 5)上,它实际上将值 5 添加到 ebx,
使 EBX = 12, 17, A3, 05。
这是为什么?
(小端)
最佳答案
'add reg, (something)' 将该值添加到寄存器 period 中。您看到的差异在于您使用寄存器的方式。
当您执行“mov ebx,[eax]”时,您正在使用 eax 中的值作为指针,因为您正在使用方括号取消引用它。
关于assembly - x86 汇编内存 - "add"指令的作用是什么?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/42887105/