有很多教科书和资源可以解释cpu的寻址模式,并将X86寻址模式分类为
Immediate
Register
Memory --> direct
--> register indirect
--> base
--> Index
--> Base-Index
基本上,寻址模式试图回答这个问题:执行指令的数据在哪里?例如, mov ax, 04
是立即的,因为值 04
是由cpu提取的指令代码的一部分 . 因此,执行指令不需要模式存储器访问 .
另一个例子是 mov ax, [FFH]
被称为直接存储器模式,因为指令代码中没有数据(操作数) . 因此,cpu必须再次访问内存以获取数据 .
现在,我在使用visual studio编译的X86代码的反汇编代码中看到了很多实例
mov dword ptr [ebp-8],0
很容易理解它试图将 0
放在位于[ebp-8]的内存的四个字节(dword)中 . 该指令代码是 c745f800000000
. 问题是该指令(和其他实例)的寻址模式是什么?
这是一个数据移动指令,因此寻址模式的概念应该是有效的 . 不是吗?