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

时间:2021-08-01 17:29:20

标签: assembly x86 masm

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

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

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

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

1 个答案:

答案 0 :(得分:7)

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

(*) This answer by Ross Ridge 处理使用方括号时 MASM 的一些特性。

mov rax, rbx

复制 rbx 的内容到 rax 中。


mov rax, [rbx]

加载 rbx 引用的 qword 到 rax


mov [rax], rbx

rbx的内容存储rax指向的内存中的qword。


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

rax = rbx
rax = *rbx
*rax = rbx