GCC内联汇编

这份 英文资料   GCC-Inline-Assembly-HOWTO 其实很深入浅出,面面俱到了,乍一看有点费劲,慢慢看还是挺好理解的
另有人专门翻译的上面的 文档,没细看,仅供参考

对于我个人,只有一个术语开始比较困惑: clobbered registers,看了下翻译的文档也了然了。clobber,被重击的,被打击的,在这里引申出来的意思就是,被破坏了的寄存器。
个人理解,内嵌汇编已经是汇编了,所以编译器读到这段时,不会对它做任何处理,也就不会知道内嵌汇编中使用了什么寄存器,假如内嵌汇编使用了寄存器eax,编译器又在内嵌的汇编之前使用了eax,那后面就会产生不可预料的后果,因为编译器不知道它所用的eax寄存器的值已经在内嵌汇编中被重击了,所以内嵌汇编需要一个显式的clobberred register列表来告诉编译器,在我里面有使用这些寄存器,编译器你在编译上面的C语言时就不要用这些编译器了,不然会产生不可预知的后果
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值