Синтаксическая ошибка встроенного ассемблера VC ++ - PullRequest
0 голосов
/ 13 сентября 2010
__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 Ответ

2 голосов
/ 14 сентября 2010

Очевидный вопрос: почему вы думаете, что хотите это сделать. Для первой инструкции проблема является чисто синтаксической и тривиальной для решения:

mov bl, byte ptr [0x0068F51C]

Есть несколько способов исправить вторую инструкцию. Одна из возможностей была бы такой:

mov eax, 0x004523C0
call [eax]

Более чистые / более прямые методы вызова произвольного адреса используют директивы ассемблера, которые, я не думаю, поддерживаются встроенным ассемблером, так что, по крайней мере, не случайно, я не уверен в более чистом способе обработки этого конкретного. 1009 *

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...