之前想在双系统上配置汇编环境,最后采用了 C 与汇编混合编程。
下面的 addl 示例使用 x86 的 AT&T 汇编语法和 GCC 扩展内联汇编。原笔记把 AT&T 语法和 ARM 架构混在了一起,这里修正:Intel 与 AT&T 是 x86 汇编的两种语法风格,ARM 是另一种指令集架构。
1 |
|
%0 对应输出变量 c,%1 对应输入变量 a;"0"(b) 让 b 与第 0 个输出使用同一位置,因此这条加法得到 a + b。
这段代码应在 x86 目标环境下编译。GCC 的 扩展内联汇编说明介绍了操作数和约束;扩展示例时,还需要考虑指令对标志寄存器等状态的影响。
本博客所有文章除特别声明外,均采用 CC BY-NC 4.0 许可协议。转载请注明来源 镜湖!
评论

