x86MASM程序集中的寻址模式和内存源与目标

我查看了许多关于这个主题的主题,但都令人困惑。我还没有看到任何可以帮助我的答案的视觉效果。

我不明白所有这些陈述之间的区别:

mov eax, ebx
mov [eax],ebx
mov eax, [ebx]

如果有人可以创建一个带有值的表格并向我展示,那就太好了。

回答

在 Intel 的语法中,在寄存器名称、标签或常量 (*) 周围添加方括号将导致用于操作的寄存器/标签指向的内存中的数据。

(*) Ross Ridge 的这个答案在使用方括号时处理了 MASM 的一些特性。

mov rax, rbx

将 的内容复制rbxrax.


mov rax, [rbx]

引用的 qword加载rbxrax.


mov [rax], rbx

rbxto qword的内容存储在 指向的内存中rax


在 C 风格的语法中,上面的表达式可以写成:

rax = rbx
rax = *rbx
*rax = rbx


以上是x86MASM程序集中的寻址模式和内存源与目标的全部内容。
THE END
分享
二维码
< <上一篇
下一篇>>