Visual c++ VC++;内联asm语法错误

Visual c++ VC++;内联asm语法错误,visual-c++,assembly,Visual C++,Assembly,此代码给出了以下错误: __asm { mov bl, byte [0x0068F51C] call 0x004523C0 } 第57行是带有mov指令的行。我看不出我做错了什么,尤其是呼叫指令。有人能告诉我如何删除此错误吗?显而易见的问题是,您为什么认为要这样做。对于第一条指令,问题纯粹是句法上的,而且很容易解决: main.cpp(57): error C2400: inline assembler syntax error in 'second operand'; found '

此代码给出了以下错误:

__asm
{
  mov bl, byte [0x0068F51C]
  call 0x004523C0
}

第57行是带有mov指令的行。我看不出我做错了什么,尤其是呼叫指令。有人能告诉我如何删除此错误吗?

显而易见的问题是,您为什么认为要这样做。对于第一条指令,问题纯粹是句法上的,而且很容易解决:

main.cpp(57): error C2400: inline assembler syntax error in 'second operand'; found '['
main.cpp(58): error C2415: improper operand type
有几种方法可以修复第二条指令。一种可能是这样的:

mov bl, byte ptr [0x0068F51C]

调用任意地址的更干净/更直接的方法使用内联汇编程序不支持的汇编程序指令,因此,至少我不确定是否有更干净的方法来处理这个特殊的问题。

我不明白为什么在内联汇编程序中使用带有常量的call指令是非法的,因为我在调试时看到了它。哦,好吧,我想你的方法现在可以了。
mov eax, 0x004523C0
call [eax]