以下x86 MOV指令有什么作用?

时间:2013-06-29 09:41:38

标签: assembly x86 mov

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

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

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

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

1 个答案:

答案 0 :(得分:4)

DWORD PTR指定操作数为32位。它被称为大小指令,并在x86 Assembly Guide

中进一步解释

当汇编程序无法分辨操作数的实际大小时,您将被迫使用这种修饰符。

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

@harold@brendan指出,使用EBP作为基地址时的默认细分为SS,因此在您的情况下,您应该可以使用{{ 1}}

测试上述指令的一种方法是使用inline assembler in Visual Studio并使用registers window,您可以在其中编辑和显示不同的寄存器值。