2013-10-10 100 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使用不同的語法