2010-09-13 88 views
0
__asm 
{ 
    mov bl, byte [0x0068F51C] 
    call 0x004523C0 
} 

此代碼給出了這樣的錯誤:57VC++聯彙編語法錯誤

main.cpp(57): error C2400: inline assembler syntax error in 'second operand'; found '[' 
main.cpp(58): error C2415: improper operand type 

線是用MOV指令的行。我沒有看到我在這裏做錯了什麼,特別是呼叫指令。有人可以告訴我如何消除這個錯誤?

回答

2

顯而易見的問題是爲什麼你認爲你想這樣做。對於第一個指令,這個問題是純粹的語法,瑣碎修復:

mov bl, byte ptr [0x0068F51C] 

有固定的第二個指令的幾種方法。一種可能性是這樣的:

mov eax, 0x004523C0 
call [eax] 

的清潔劑/調用,我不認爲通過內聯彙編中所支持的任意地址使用匯編指令的更直接的方法,這樣至少副手我不知道更清潔的方式來處理這個特定的問題。

+0

我不明白爲什麼在內聯彙編程序中使用帶有常量的調用指令是非法的,因爲我在調試時看到它。噢,我想你的方法現在會做。 – kaykun 2010-09-13 20:16:37