一:背景
早期,绝大多数的程序都是用汇编语言写的,甚至是计算机的操作系统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生成的汇编代码: