谈谈编译后的目标文件

本为主要解决三个问题:什么是目标文件?目标文件的格式是怎样的?为什么要设计成这样的格式

什么是目标文件?

目标文件就是源代码编译后但是并未进行链接的文件,比如windows下面的 .obj  和Linux下面的 .o 等。

目标文件的格式

目标文件一般分成两种,windows下面的PE(Portable Executable)和Linux下面的 ELF(Executable Linkable Format)

目标文件的组成结构图:BSS(Block Started by Symbol)



那么为什么要把程序指令和程序数据分开存放呢?

1. 数据区域对于进程来说是可读可写的,对于指令区域只可读,这样可防止程序指令被修改

2. 程序区和指令区分离有利于提高程序的局部性,提高CPU的缓存命中率

3. 当系统中运行多个改程序副本时,他们的指令都一样,这样的分离有利于共享指令,节省内存


评论 3
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值