范文健康探索娱乐情感热点
投稿投诉
热点动态
科技财经
情感日志
励志美文
娱乐时尚
游戏搞笑
探索旅游
历史星座
健康养生
美丽育儿
范文作文
教案论文
国学影视

第四章编译基础知识之重定位

  要解释重定位,首先需要理解程序是怎么链接的。程序链接的时候可以通过链接脚本将程序链接到指定地址上,可以链接成地址相关码也可以链接成地址无关码。
  顾名思义,地址相关码就是把程序链接到指定地址上,在嵌入式开发中经常用到地址相关码的编译。由于嵌入式的板子资源有限,需要规划内存的使用,就需要合理规划bios、操作系统、嵌入式软件的地址。地址无关码就是程序可以被加载到任意地址上,但是程序的指令编译之后就是固定的,在函数调用、全局变量的使用的时候如何正确定位到指定地址上呢?
  举一个例子,如果我们链接的地址是0x00000000,被调用的函数被链接到0x00010000上,如果指令的逻辑直接跳转到0x00010000,那就是地址相关码。如果要把程序加载到0x00200000上,那被调用的函数就被加载到0x002100000上,要想让指令正确运行,就需要做重定位。
  常用的重定位技术是,将所有的全局符号放在全局偏移表中,在elf文件中就是.got段,如果涉及动态库的话就是.got.plt段。全局偏移表中放着全局符号的地址,由于链接的过程中知道全局偏移表的位置,只需要将代码从当前位置跳到全局偏移表,然后从全局偏移表中读入值,再跳到全局偏移表的值就好了。
  那么,全局偏移表中的值,在链接阶段是不知道的,需要程序运行之前修改成正确的地址,这一过程就叫重定位。
  还是刚刚的例子,全局偏移表中存0x00010000,重定位的时候计算加载的偏移为0x00200000-0x00000000=0x002000000,修改全局偏移表的值为0x00010000+0x002000000=0x002100000。然后程序运行的时候指令跳转到全局偏移表读到的地址就是0x002100000,那么函数就能调用的正确的地址了。全局变量的重定位类似。
  但是,需要格外注意的是,最近几年国产化盛行。龙芯的mips指令是一个特例。简单介绍一下,mips本身不是龙芯发明的,但是现在找遍全球的芯片厂商,可能也就是龙芯在用mips指令集。
  mips指令集是一个定长的指令集,跟x86有很大区别。mips有两个非常关键的寄存器gp还有$t9,有做这方面的同学需要要自己研究下。
  mips指令集也是非常有意思,函数的前两行指令非常关键,也可以用来做一些意想不到的设计。如果你想把数据段和代码段分开放,可以研究研究这两行指令。对于有些特殊的行业的无扰加载程序非常友好。
  mips的常量的分页机制也非常有意思,有兴趣的同学可以研究下,虽然就重定位来说,常量如果被放在.rodata段,其重定位的方法和全局变量完全一样,但是这种分页机制可以让我在许多其他方面的设计上借鉴。
  要想完全将明白重定位,可能需要写一本书,我这里知识大概介绍一下相关知识,需要了解的同学可能需要大量的研究和实践。
  祝好。

华为Mate50X大曝光,2K屏高刷新率后置四摄等,满满的诚意无人不晓,华为手机是知名的手机厂商,以至于华为手机的一举一动都吸引着大家的目光。同时大家都知道华为是一个极致注重创新以及科技研发的手机厂商,因此华为手机为智能手机行业的发展做出了巨每秒8人升级鸿蒙系统,,华为HarmonyOS用户已超5000万IT之家8月9日消息今年7月29日的华为发布会上,余承东表示华为HarmonyOS2。0用户已超4000万,是一个里程碑式的记录,平均每秒就有8个用户升级。据央视报道,最新数据显示稳了,华为Mate50系列可能将于明年上市,支持5G网络对华为和很多花粉来讲,华为P50系列最大的遗憾就是不能支持5G网络,即使搭载了麒麟9000处理器芯片,但是因为5G射频系统里面的关键零部件滤波器,华为和国内的供应商现在依然没有掌握鸿蒙系统又出更新了,如何升级最新的166版本?昨天发了关于鸿蒙166版本大更新的消息,大家还是很热情的,比较激动的,毕竟这么久没有鸿蒙的消息了,也没有任何动静。同时本次更新,也解决了一些以往版本的一些问题,系统做了很大的优化。装Windows11了!这三个常规操作,你会了吗?Window11系统已经正式推出,相信很多小伙伴和小编一样已经跃跃欲试下载尝鲜了,但是由于win11系统相比之前的系统做了一下改动,使用起来还不是很习惯的。小编就在一些常用的设置上橙心优选,回归初心,进行市场下沉,社区团购洗牌已经开始了在上几期的文章中,赤焰信息跟大家谈到了橙心优选内部组织大调整的消息。橙心优选作为滴滴旗下的社区团购平台,早期也传出橙心优选将独立业务,在不依靠滴滴的基础上,进行自主生存和发展。据赤焦点分析阿里女员工被侵犯,零售业何以成为性贿赂和腐败重灾区?阿里女员工被侵犯事件发酵2天后,阿里终于在内网公布了处罚结果相关当事人被辞退并永不录用相关事业群总裁和HRG引咎辞职,阿里巴巴首席人力资源官童文红记过处分。还原事件经过,根据涉事阿格力专业厨房空调,为您打造完美的现代厨房厨房,是烹饪美食的地方是优质生活享受的一个重要部分我们认为厨房是这样的其实是这样的在炎热的夏天厨房却成了让人望而却步的地方油烟重环境潮湿气温高让烹饪美食成了一项非常艰巨的任务格力厨特斯拉车型有可能搭载比亚迪的刀片电池据可靠消息称,就在几天之前,有传言特斯拉正如期推进2。5万美元电动车开发计划,该车型将在中国工厂生产。根据上述消息,外界认为特斯拉电动汽车最快或将在明年第二季度内装备刀片电池。该电本周大事件特斯拉涨价哪吒吴x凡代言风波ampampquot蔚小理ampampquot销量不到一个月再涨价特斯拉ModelSX涨价3万本周,特斯拉ModelSX又又涨价了,ModelS长续航版车型售价上调3万元,由此前82。999万元售价上调至85。999万元起Mode中兴Axon30首批用户评价来了只能说太真实了作为业内首款支持屏下相机的5G智能手机,中兴Axon30上市有一段时间了,我从发布会开始就一直关注着,期间也陆陆续续看了很多数码博主的测评,但大多数都是夸赞,很少有谈及不足之处。所
人类社会科学技术是把双刃剑育邻梦网友提问人工智能一定能打破人力生产效率递减的僵局吗?回复人类社会科学技术是把双刃剑,它提升了人类社会生产劳动协同效率。但是,它的大规模替代人类劳动计划,正在稀释人类社会的综合未来人类会被机器人取代吗?个人认为不会。而是身体的各部分逐渐被机器替代,变成半机械生化人。首先我们要认同一个事情,科技产品的发展速度是极快的。从莱特兄弟发明第一架飞机,到美国人登上月球,只用了六十多年的时间我国科学家构建合成类胡萝卜素细胞工厂新京报讯(记者周怀宗)随着技术的发展,人类越来越多地开始了解微观世界的运行规律,近日,记者从中国农业科学院获悉,自然通讯在线发表了中国农业科学院深圳农业基因组研究所黄三文团队和美国中国移动中国联通中国电信发布重要公告每经编辑毕陆名2月21日晚间,中国移动中国联通中国电信等通信巨头发布2022年1月份的主要运营数据。中国移动5G套餐客户数4。0127亿户中国移动(00941。HK)公告2022年手机充电到100再拔?原来我们都做错了,正确充电可延长电池寿命相信很多朋友啊都有过这样的感觉,就是以前手机充一次电呢可以用一两天,而现在充一次电的基本用不到半天就没电了,那出现这种情况啊,我们排除电池自然老化的因素,那其实很多时候啊都是由于我远程办公会不会在未来五到十年成为普遍现象?央视网消息为应对新冠肺炎疫情,日本技术企业富士通公司宣布,位于日本的办公空间将缩减一半,同时启动居家工作计划,在日本工作的8万名富士通员工今后将以远程工作方式为主,从而使他们能够根华为官宣!2月27号春季发布会就在今晚华为突然官宣自己春季发布会。华为官方预热将于2月27日晚上9点半举行华为智慧办公春季发布会,全球开启。本次发布会的主题为超级终端,超级创造力。图片中有五颗星球,是否暗示华为东数西算IDC行业专家交流会1各个相关产业链都有上市公司缆通依米康(精密空调)英维克佳力图供电设备中恒电气(高压直流)科华数据(大容量UPS)科士达(UPS)易事特ICT设备华为浪潮长飞亨通光模块企业(中际旭wma格式怎么转换mp3?用格式工厂软件转换一下格式,再试试看!一般电脑播放器兼容性要好一些,车载电脑播放器要弱一些!下面,一起来了解下将wma文件转成手机上支持播放的方法方法一直接更改文件后缀名这种方法虽黑客一般都是怎么获得利益的?举个简单的例子。我成功黑入了你的电脑,获取权限后看到你D盘下面有个文件夹叫做工作,下面有个重要,里面还有个文件夹叫新签合同待归档,里面自然是近期签的重要合同,可能价值几百上千万,或语音转文字的软件有哪些?不用会员的那种?微信上就有语音转文字的功能。专业点的Au等等好多呢我在应用商店翻看了一下,这类软件确实很多。不过,大多数是花样收费的青铜会员,白银会员,黄金会员,钻石会员,至尊豪华会员收费也各种1