c - gcc,内联汇编 - pushad/popad 丢失?

标签 c gcc assembly stack inline-assembly

有什么方法可以避免将 pushad/popad 指令体复制粘贴到我的代码中?

因为 gcc(当前标志:-Wall -m32)提示

__asm__("pushad;");

Error: no such instruction: `pushad'

__asm__("popad;");

Error: no such instruction: `popad'

最佳答案

GCC 使用 AT/T 汇编语法,而 pushad/popad 是 Intel 约定,试试这个:

__asm__("pushal;");
__asm__("popal;");

关于c - gcc,内联汇编 - pushad/popad 丢失?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/37157552/

相关文章:

c++ - 什么是 __asm volatile ("pause"::: "memory");做?

c - 带分隔符的文件中的 fgets 和 sscanf 记录

C:如何在矩阵中使用 scanf 读取多个值

c++ - 为什么包裹在函数中的 GAS 内联汇编为调用者生成与纯汇编函数不同的指令

performance - gslshell(基于 lua)返回 0/0 ==0/0 true

linux - GDB 调试器错误

linux - 从汇编程序获取命令行参数

assembly - "MOVOU"在golang汇编中是什么意思

二进制到八进制或十六进制的转换。哪一个容易(C语言编译器)

c - Raw Sockets 与 Libpcap 在发送性能方面的对比