统计二级域名的网站流量有什么用,网站怎么申请支付宝接口,小说网站建设方案,公司建设网站有什么好处【0】GCC将源代码转化成可执行代码的流程
#xff08;1#xff09;C预处理器cpp扩展源代码#xff0c;插入所有用#include命令指定的文件#xff0c;并扩展声明的宏#xff1b;#xff08;2#xff09;编译器ccl产生两个源代码的汇编代码#xff1a;*.s#xff1b;1C预处理器cpp扩展源代码插入所有用#include命令指定的文件并扩展声明的宏2编译器ccl产生两个源代码的汇编代码*.s3汇编器as将汇编代码转化为二进制目标代码 *.o ; 目标代码是机器代码的一种形式它包含所有指令的二进制表示但没有填入地址的全局值4链接器ld将目标代码与实现库函数的代码合并最终产生可执行代码文件
【1】第一步源码演说 【2】生成目标文件p107.o 及对其反汇编
2.1 gcc -O1 -c p107.c 》》 产生目标文件 p107.o 注意此时还没有链接
2.2 objdump -d p107.o p107-obj-dis.s 反汇编目标文件p107.o 得到 p107-obj-dis.s 如下 【3】生成可执行文件p107及对其反汇编
3.1 gcc -O1 -o p107 p107.o p107-main.c 生成可执行文件p107注意 此时已经经过链接过程了
3.2 objdump -d p107 p107-exe-dis.s 反汇编可执行文件 p107 得到p107-exe-dis.s 汇编文件该文件内容如下 【4】比较p107-obj-dis.s 和 p107-exe-dis.s 【总结】
一句话说完重定位目标文件是汇编器 使用编译器输出的汇编语言输出的二进制目标文件 要知道目标文件使用的是相对物理内存地址重定位的目的就是变相对物理地址到绝对物理地址。bingo