什么是符号名地址、相对地址和绝对地址?什么是地址重定位?

  1. 符号名地址:指程序中使用的变量名、函数名等符号的名称。在编译时,编译器会将这些符号名转换为具体的地址。符号名地址使得程序员可以使用易于理解的名称来引用内存位置,而不需要直接使用数字地址。

  2. 相对地址:指相对于某个基准地址(通常是程序的起始地址或某个段的起始地址)的地址。相对地址的优点在于它使得程序在内存中的加载位置不那么重要,因为只要知道基准地址,就可以计算出实际的物理地址。相对地址常用于程序的跳转和调用等操作。

  3. 绝对地址:指在内存中某个具体的物理地址。绝对地址是唯一的,直接指向内存中的某个位置。在程序运行时,绝对地址是计算机硬件所需的实际地址。

  4. 地址重定位:操作系统将逻辑地址转变为物理地址的过程。也就是对目标程序中的指令和数据进行修改的过程

  5. 根据对地址变换进行的时间及采用的技术手段的不同,可把地址重定位分为静态重定位和动态重定位两类。

  • 静态重定位:在程序加载到内存时,操作系统将所有的相对地址或符号名地址转换为绝对地址。这种方式在程序运行前就完成了地址的确定。

  • 动态重定位:在程序运行时,操作系统根据当前的内存状态动态地将相对地址转换为绝对地址。这种方式允许程序在不同的内存位置加载和运行,提高了内存的利用率和灵活性。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值