如何在c代码里内联汇编

这里写图片描述

一:背景

早期,绝大多数的程序都是用汇编语言写的,甚至是计算机的操作系统OS/360.但是,汇编语言因其抽象程度低,无法提供类型检查。使得编写大型程序捉襟见肘。而且,汇编代码是和机器紧紧联系在一起,使得汇编语言编写的程序移植性差。
那为什么还要把汇编代码内联到c语言里呢?

二:汇编代码的优势

1.访问寄存器的值
2.访问条件码
3.使用一些特殊的指令和特殊的内存地址
……

三:怎么内联汇编

①手写汇编函数(不推荐)

新建一个.c文件里,写入函数,再通过

gcc -S 2.c 

生成汇编文件,再修改汇编文件里的指令

gcc -o prog 1.c 2.s

最后链接两个文件,就ok啦。
eg:

//1.c
#include<stdio.h>
int main()
{
    printf("%d\n",call());
    return 0;
}

//2.c
int call()
{
    return 15;
}

2.c生成的汇编代码:

    
  • 0
    点赞
  • 13
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值