带参数的操作码:8B55 08
反汇编:MOV EDX,DWORD PTR SS:[EBP+8]
这会移动地址EBP+8
上的值并将其放入EDX
吗? DWORD PTR
是什么意思?
测试x86指令最简单的方法是什么?有没有办法让我定义所有的寄存器和标志,然后轻松地执行/测试这样的指令?
我正在使用以下手册,但最初阅读起来非常困难:http://download.intel.com/products/processor/manual/325383.pdf
答案 0 :(得分:4)
DWORD PTR
指定操作数为32位。它被称为大小指令,并在x86 Assembly Guide
当汇编程序无法分辨操作数的实际大小时,您将被迫使用这种修饰符。
有问题的指令将32位值从堆栈段(SS)移动到EDX
由@harold和@brendan指出,使用EBP
作为基地址时的默认细分为SS
,因此在您的情况下,您应该可以使用{{ 1}}
测试上述指令的一种方法是使用inline assembler in Visual Studio并使用registers window,您可以在其中编辑和显示不同的寄存器值。