VC ++内联asm语法错误

时间:2010-09-13 19:43:45

标签: visual-c++ assembly

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

此代码提供此错误:

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

第57行是mov指令的行。我不知道我在这里做错了什么,特别是通话指令。有人可以告诉我如何删除此错误吗?

1 个答案:

答案 0 :(得分:2)

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

mov bl, byte ptr [0x0068F51C]

有几种方法可以修复第二条指令。一种可能性是这样的:

mov eax, 0x004523C0
call [eax]

调用任意地址的更干净/更直接的方法使用我认为内联汇编程序不支持的汇编程序指令,所以至少我不确定是否有更清晰的方法来处理这个特定的地址。 / p>