计算机系统基础--链接 第一节课

写在前面:今天主要讲解内容是链接器的定义和功能。

一、运行程序中的位置

P1
图1

  链接器是程序运行的最后一道关卡,在汇编器工作后,生成.O文件,然后通过链接器将.o文件与调用库中的.o文件进行合并,符号分析,重定位等操作,生成一个可执行的目标程序。

二、功能

  1. 首先是将代码和数据分别存储在内存当中
  2. 符号分析,在文件中寻找符号引用,并将其符号定义(函数、全局变量、静态变量)进行关联(库中用不上的符号定义将被舍弃,节省内存)
  3. 重定位,将找到的符号引用进行修改,使它们指向对应的内存位置

三、提及知识

  1. 译码,译码是编码的逆过程,在编码时,每一种二进制代码,都赋予了特定的含义,即都表示了一个确定的信号或者对象。在从存储器中取出一条指令后,要对于进行译码:将操作码和操作数分离,然后进行相应操作。
  2. 全局变量具有外部链接性(这个变量在整个程序中(所有的文件中)都可以使用),静态全局变量具有内部链接性(这个变量可以在代码所在的文件中使用),静态局部变量没有链接性(这个变量只能在其代码块中被使用
  3. 局部变量是存储在栈中的,并且每次是在函数内被引用时,才在栈中开辟空间,待函数结束后,其内存空间则被丢弃。
  4. 增量式编译,只需编译被改变的代码以及依赖于被改变代码的代码,可以加快编译的速度。对于一个大的系统来说编译一次是要消耗很长时间的。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值