1

带参数的操作码:8B55 08
反汇编:MOV EDX,DWORD PTR SS:[EBP+8]

这是否会移动地址EBP+8的值并将其放入EDX?是什么DWORD PTR意思?

测试 x86 指令的最简单方法是什么?有没有办法让我定义我所有的寄存器和标志,然后像这样轻松地执行/测试指令?

我正在使用以下手册,但起初很难阅读:http: //download.intel.com/products/processor/manual/325383.pdf

4

1 回答 1

4

DWORD PTR指定操作数为 32 位。它被称为 size 指令,在x86 Assembly Guide中有进一步的解释

当汇编器无法判断操作数的实际大小时,您将被迫使用这种修饰符。

有问题的指令将 32 位值从堆栈段 (SS) 移入EDX

就像@harold@brendan指出的那样,EBP用作基址时的默认段是SS,所以在你的情况下你应该能够使用mov edx, [ebp + 8]

测试上述指令的一种方法是在 Visual Studio 中使用内联汇编程序并利用寄存器窗口,您可以在其中编辑和显示不同的寄存器值。

于 2013-06-29T09:48:46.897 回答