2013-10-10 75 views
2

我想弄清楚如何从ASM指令中拉出一个寄存器值并将其转换为C++中的变量。如何从寄存器中提取值?

例如:MOV DWORD PTR DS:[ESI],EDI

(假设值EDI保持是一个int)int值= EDI;

+2

当然,在代码执行时,寄存器中的值可能已经改变。你真的想做什么?也许你应该从上下文记录中获得它。 –

回答

5

取决于你的编译器。搜索“内联汇编”和您使用的编译器。例如用VC++

int32_t x; 
    _asm mov x, eax; 

(可能是__asm)。 GNU使用不同的语法