c++ - 转换内联 C 汇编程序(Intel 语法到 AT&T)

标签 c++ assembly x86

我正在尝试将此函数从 MSVC++ 转换为 MINGW(这是原始 MSVC 函数)

    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;

   }
}

但是我在使用 pushad 和 popad 时遇到了问题。他们给了我一个“未声明的标识符”

最佳答案

普沙 波帕 (没有 d)

关于c++ - 转换内联 C 汇编程序(Intel 语法到 AT&T),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1478113/

相关文章:

c++ - upper_bound 并找到不同的结果

c - x86 与 x86_64 调用约定

C++ 内联程序集试图将 char 从 std::string 复制到寄存器中

c++ - 原子操作、std::atomic<> 和写入顺序

c++ - 使函数异常安全

c++ - open( char *filename, int access, int Permission) 在哪里定义的?

将测试 al,al 转换为 c

pointers - Nasm - 按值和地址访问结构元素

c - x86 程序集小写未处理异常

c++ - OpenCV 窗口卡住