C与汇编混合编程(1)

前情提要

每个搞过竞赛的同学可能都想象过通过内嵌汇编来提高程序效率,然而对于绝大多数同学来说,可能也只是开开玩笑而已,毕竟CCF的考纲里面明确写了不许内嵌汇编。
我就是众多只在嘴上说说的人之一,反正中学六年我最终还是没有写过一句内嵌汇编。

当然这只是因为我基本不会汇编(捂脸)

今天由于某些特殊原因(解释起来太长),我又一次想到了在编写C程序的时候使用汇编,然后就开始了今天晚上的人在囧途之旅~

为方便叙述,本文中代码一律使用C而不是C++,系统环境采用Linux(Windows下出问题别来找我)


内嵌汇编?

纵使我是一个渣渣,我也知道想要在C中使用汇编有两种方式:

  • 在C的代码里面内嵌汇编
  • 把汇编编译成单独文件,然后再链接起来

本着从易到难的原则,我决定先从内嵌汇编试起。

可是谁告诉你内嵌汇编简单了?

查完了某度,刚准备动手,猛然注意到文章中说的都是VC。常识告诉我,巨硬会用它自己的汇编器MASM,这显然会与我现在使用的gcc有区别。
于是又一次某度过后,我发现gcc的汇编器GAS用的是AT&T风格的汇编,跟我略微会那么一点点的x86汇编完全不一样。
没有办法,硬着头皮凭借自己瞎撸的本事靠感觉写出几行AT&T风格的汇编。

结果呢

  • 5
    点赞
  • 10
    收藏
    觉得还不错? 一键收藏
  • 3
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 3
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值