asm调用MessageBoxA
_declspec(naked)void main()
{
_asm
{
push 0;
push 0;
push 0;
push 0;
mov eax,7666EA71h; // 假设 0x7666EA71 是 MessageBoxA 的地址
call eax;
ret;
}
这段asm代码可以完成MessageBox(0,0,0,0);的功能,
如果我想要完成MessageBox(0,"123","abc",0);的功能,
在不使用C/C++语言来定义"123"和"abc"两个字符串的情况下,asm代码应该怎么写?
也就是说用纯_asm语言来完成MessageBox(0,"123","abc",0);的功能。
[解决办法]
__asm
{
push '321'
push 'cba'
mov eax,esp
push 0
push eax
add eax,4
push eax
push 0
call dword ptr[MessageBoxA]
add esp,8
}