哪位朋友指点一下机器码中的“操作尺寸前缀”是何含义?
看到在机器码中有
操作尺寸前缀,寻址尺寸前缀。
这两个东西是干吗的?谢谢呀
[解决办法]
没见过!理论上是给cpu使用的,用以控制地址或数据总线,或者用于选择使用寄存器中的高半部分或者是低半部分。
[解决办法]
是为了切换16-bit <-> 32-bit指令、16-bit <-> 32-bit寻址。
比如指令67 66 a1 00 00 00 00
在16-bit模式下是
mov eax,[00000000]
在32-bit模式下是
mov ax,[0000] ; 67 66 a1 00 00
add [eax],al ; 00 00
[解决办法]
16-bit模式下,
8f 04/66 8f 04是pop word ptr [si]/pop dword ptr [si]
32-bit模式下,
8f 06是pop dword ptr [esi],66 8f 06是pop word ptr [esi]
67 8f 04是pop dword ptr [si],67 66 8f 04是pop word ptr [si]
[解决办法]
IA32看看