C++ 转换内联C汇编程序(英特尔语法转换为AT&;T)
我正在尝试将此函数从MSVC++转换为MINGW(这是原始的MSVC函数)C++ 转换内联C汇编程序(英特尔语法转换为AT&;T),c++,assembly,x86,C++,Assembly,X86,我正在尝试将此函数从MSVC++转换为MINGW(这是原始的MSVC函数) 但我对普沙德和波帕德有意见。他们给我一个“未声明的标识符”在Mingw中,它可能被称为“pushall”而不是“pusha”:所以试试“pushalld”和“popalld”。你可以用C编译一些东西,还可以用-S参数保存汇编程序列表。这将显示AT&T语法的辉煌。pusha 波帕 (不带d)编译器发出的代码不一定包含push-all寄存器操作码的实例。实际上,它是pushal和popal(不带额外的“l”)。这些不只是16
但我对普沙德和波帕德有意见。他们给我一个“未声明的标识符”在Mingw中,它可能被称为“pushall”而不是“pusha”:所以试试“pushalld”和“popalld”。你可以用C编译一些东西,还可以用
-S
参数保存汇编程序列表。这将显示AT&T语法的辉煌。pusha
波帕
(不带d)编译器发出的代码不一定包含push-all寄存器操作码的实例。实际上,它是pushal和popal(不带额外的“l”)。这些不只是16位(word)版本吗?
VOID __declspec(naked) BNSTUB()
{
__asm
{
pushad;
call OnChatPacketReceived;
TEST EAX,EAX;
popad;
jnz oldCall;
MOV EAX,0;
MOV DWORD PTR DS:[EBX+0x6FF3EBA0],1
ret;
oldCall:
CALL eax;
MOV DWORD PTR DS:[EBX+0x6FF3EBA0],1
ret;
}
}