arm64--汇编器

前面两篇讲了ARM64汇编指令,本篇主要讲一下汇编器,何为汇编器呢?
汇编器主要是将汇编语言翻译为及其目标代码的程序

编译流程

1、预处理:GCC的预编译器(CPP)对各种预处理命令进行处理,例如对头文件的处理、宏定义的展开、条件编译的选择等。

gcc -E test.c - o test.i

2、编译:C语言的编译器(ccl)首先对预处理之后的源文件进行词法、语法以及语义分析,然后进行代码优化,最后把C语言代码翻译成汇编代码

 gcc -S test.i -o test.s

3、汇编:汇编器(as)将汇编代码翻译成机器语言,并生成可重定位的目标文件

 as  test.s -o test.o

4、链接:链接器(ld)会把所有生成的可重定位目标文件以及用到的库文件综合成一个可执行二进制文件。

ld -o test test.o -lc

ELF文件

汇编阶段生成的可重定位目标文件以及链接阶段生成的可执行二进制文件都是按照一定的文件格式(ELF)组成的二进制目标文件
在这里插入图片描述
汇编阶段生成的可重定向目标文件和链接阶段生成的可执行二进制文件的主要区别在于,可重定向目标文件的所有段的起始地址都是0。
ld --verbose 可查看自带的链接脚本

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值