2
我想弄清楚如何从ASM指令中拉出一个寄存器值并将其转换为C++中的变量。如何从寄存器中提取值?
例如:MOV DWORD PTR DS:[ESI],EDI
(假设值EDI保持是一个int)int值= EDI;
我想弄清楚如何从ASM指令中拉出一个寄存器值并将其转换为C++中的变量。如何从寄存器中提取值?
例如:MOV DWORD PTR DS:[ESI],EDI
(假设值EDI保持是一个int)int值= EDI;
取决于你的编译器。搜索“内联汇编”和您使用的编译器。例如用VC++
int32_t x;
_asm mov x, eax;
(可能是__asm)。 GNU使用不同的语法
当然,在代码执行时,寄存器中的值可能已经改变。你真的想做什么?也许你应该从上下文记录中获得它。 –