Только что занялся изучением ассемблера, который захотел попробовать использовать при помощи _asm в C++, используя при этом Visual Studio.
_asm
{
mov eax, 4
mov ecx, 5
}
Примеры наподобие вот этого, разумеется, получаются, однако проблема возникла уже тогда, когда я попытался вывести на экран MessageBox с любым сообщением.
Насколько я понял, возникают они из-за неск. ошибок:
— Явно указывать тип процессора, модель памяти и вызова функций не надо.
— Т.к. я подключаю заголовочный файл windows.h через препроцессорную директиву в C++, то указывать отдельно extrn ExitProcess:PROC и extrn MessageBoxA:PROC также не надо.
— Поле .data использовать также не стоит, вместо него сделал
char *Msg = "aaaaa";
char *Ttl = "aaaaa";
— Явно указывать .code также не стоит.
Однако ошибки всё равно остались. Почему? Что не так? О каких ещё особенностях встроенного ассемблера мне стоит знать?