带参数的操作码:8B55 08
反汇编:MOV EDX,DWORD PTR SS:[EBP+8]
这是否会移动地址处EBP+8
的值并将其放入EDX
?是什么DWORD PTR
意思?
测试 x86 指令的最简单方法是什么?有没有办法让我定义我所有的寄存器和标志,然后像这样轻松地执行/测试指令?
我正在使用以下手册,但起初很难阅读:http: //download.intel.com/products/processor/manual/325383.pdf
带参数的操作码:8B55 08
反汇编:MOV EDX,DWORD PTR SS:[EBP+8]
这是否会移动地址处EBP+8
的值并将其放入EDX
?是什么DWORD PTR
意思?
测试 x86 指令的最简单方法是什么?有没有办法让我定义我所有的寄存器和标志,然后像这样轻松地执行/测试指令?
我正在使用以下手册,但起初很难阅读:http: //download.intel.com/products/processor/manual/325383.pdf
DWORD PTR
指定操作数为 32 位。它被称为 size 指令,在x86 Assembly Guide中有进一步的解释
当汇编器无法判断操作数的实际大小时,您将被迫使用这种修饰符。
有问题的指令将 32 位值从堆栈段 (SS) 移入EDX
就像@harold和@brendan指出的那样,EBP
用作基址时的默认段是SS
,所以在你的情况下你应该能够使用mov edx, [ebp + 8]
测试上述指令的一种方法是在 Visual Studio 中使用内联汇编程序并利用寄存器窗口,您可以在其中编辑和显示不同的寄存器值。