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