c/c++语言开发共享双线百分号(%%)在gcc内联汇编中有什么作用?

我遇到了一个看起来像这样的代码:

asm volatile ( # [...] "movl $1200, %%ecx;" # [...] ); 

我知道什么是movl $1200, %ecx在x86中做了什么。 但我很困惑为什么有两个百分号。

    GCC内联汇编使用%0,%1,%2等来表示输入和输出操作数。 这意味着你需要使用两个%%来实现真正的寄存器。

    查看此howto以获取重要信息。

    这取决于

    扩展的asm更常用,因为它更强大。

    这有助于GCC区分操作数和寄存器。 操作数具有单个%作为前缀。 ‘%%’总是与寄存器一起使用。

      以上就是c/c++开发分享双线百分号(%%)在gcc内联汇编中有什么作用?相关内容,想了解更多C/C++开发(异常处理)及C/C++游戏开发关注计算机技术网(www.ctvol.com)!)。

      本文来自网络收集,不代表计算机技术网立场,如涉及侵权请联系管理员删除。

      ctvol管理联系方式QQ:251552304

      本文章地址:https://www.ctvol.com/c-cdevelopment/562136.html

      (0)
      上一篇 2021年2月4日
      下一篇 2021年2月4日

      精彩推荐