反汇编代码里的地址 链接地址 运行地址 存储地址 位置无关码 位置有关码

反汇编代码地址就是链接地址;


链接地址不一定等于运行地址(通常链接地址和运行地址的值是一样的);


运行地址是在统一编址的存储区间中,正在运行的代码所处的地址;


存储地址是也就是代码被下载到物理介质上的地址。


位置无关码的代码中没有绝对地址的不连续跳转,反之就是位置相关码;


代码重定位的判断本质是依赖与PC寄存器实现。


具体是PC值的相对位置固定,可以锁定两个相对位置:相对PC锁定运行时代码的首地址和相对PC锁定某个特定的存储单元,以这个单元里的数值为绝对地址得到重定位地址。
比较重定位的地址和当前代码运行的首地址,若相同不需要重定位,如不同则复制代码,清BSS段(实现C语言中未初始化的全局变量是0),刷新PC值跳过去。
  • 1
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值