纠纷奇闻作文社交美文家庭
家庭城市
爱好生活
创业男女
能力餐饮
美文职业
心理周易
母婴奇趣
两性技能
社交传统
新闻范文
工作个人
思考社会
作文职场
家居中考
兴趣安全
解密魅力
奇闻笑话
写作笔记
阅读企业
饮食时事
纠纷案例
初中历史
说说童话
乐趣治疗

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

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

网易暗黑破坏神不朽已经基本开发完成近日,在网易发布财报后的电话会议上,网易CFO杨昭烜表示,《暗黑破坏神:不朽》已经基本开发完成,并将在2019年内推出。杨昭烜表示,《暗黑破坏神:不朽》的开发已经基本完整……测评车魔王详解吉利星瑞全系2。0T,爆出190马力展望10几万的家用轿车市场,无疑是被一些老字号的合资品牌垄断着,国产车企中能从中分得一杯羹的,也是凤毛麟角。但正所谓是我命由我不由天。本地汽车品牌吉利集团在汲取沃尔沃汽车之精华……目前主流手机芯片性能排行,看看哪款可以满足你即将开学季,大家选购手机,其性能也是需要关注的一大要点,手机性能会影响到流畅度、游戏体验等,其中手机芯片性能起到决定性作用。目前5G手机所采用的芯片非常多,我们一起来了解下目前……微信iOS版又悄悄更新,有这些新变化家人们,微信iOS版又悄悄更新了!(最新版本:iOS8。0。10),这一次的更新更新说明也是一如既往说了个寂寞,微信又在和大家打哑谜了。新版本到底更新了哪些功能?今天,疯……畅玩永劫无间等3A大作的性能小钢炮雷蛇灵刃14游戏本个人向体大概是在三周之前的某一天,当被组长问及近期你最感兴趣的游戏本是哪一款?,我毫不犹豫地回答当然是雷蛇的灵刃14啦!,于是就有了以下这一篇为期两周的测试及使用体验报告。外观展示……在线教育急刹车,云计算为何躺枪?图片来源视觉中国文锌刻度,作者陈邓新,编辑孟会缘谁都没有想到,云计算也受到双减的影响。2021年7月24日,《关于进一步减轻义务教育阶段学生作业负担和校外培训……挡不住!几十家LED厂商集体涨价晶丰明源:上调部分产品价格6月30日,全球第一的LED驱动芯片龙头晶丰明源再次对外发布价格调整函!据统计,2021年,晶丰明源共发布7次涨价函。晶丰明源涨价原因:上……iPhone12不配充电头怎么办?盘点值得入手的PD快充头最近数码圈最热门的机型就是iPhone12系列了,5G、10个颜色、小屏全面屏、MagSafe磁吸无线充电除此之外,苹果专门花几分钟吹了一波环保的重要性,顺便表达一下这次……FUN肆趣野全国媒体试驾,哈弗H92022款很有神威自驾318国道,有组队的吗?每个越野爱好者的心中都有一个圣地,还有一个拥有硬核座驾的愿望!去征服这样一条越野线。哈弗H9作为车主力量源泉中的一员,尤其是升级后的哈弗……第四章编译基础知识之重定位要解释重定位,首先需要理解程序是怎么链接的。程序链接的时候可以通过链接脚本将程序链接到指定地址上,可以链接成地址相关码也可以链接成地址无关码。顾名思义,地址相关码就是把程……魅族18sPro通过工信部认证,搭载骁龙888Plus和后置两款魅族新品M182Q和M192Q现已在工信部注册,分别命名为魅族18s和魅族18sPro。从工信部的图表中,我们可以看到其中一款手机的处理器频率为2。95Hz,很可能是骁龙8……天玑110067W快充!想不到现在的千元机都这么拼了?作为一个米粉。看到RedmiNote10发布完毕,只想说一句:不管在难,Redmi的性价始终一如往初。在RedmiNote10没发布之前,不少网友和数码博主都在猜测,现在……
AI工程化,让人工智能回归现实vivo副总裁周围安卓手机卡顿要在内核上做文章科技型中小企业与高新技术企业的区别最不像姓氏的姓氏,喊出来,像报数小米的200W超级快充真的是刚需吗?分享个人的JS方法技巧工作笔记注意!HCIAUnifiedCommunicationV2。鸿蒙用户破5000万,央视也站出来为华为正名,任正非再次提高以下三个习惯损害手机寿命,快看看你中招没打手机厂商脸,手机散热器热卖,网友降温效果显著半月谈丨充还是换?电动汽车的岔路口2021上半年值得买的三款手机
2017关于白露的谚语汇总LOLS8赛季大虫科加斯打野天赋符文每个角落的人都过着相似的人生男人最喜欢女人怎么穿内衣对不起我欺骗了你以家人之名凌爸给陈婷道歉,让她结局洗白,原因简单却不赞同除了苹果、江小白、杜蕾斯,我们还能抄点啥?在什么情况下离婚协议无效解密齐白石不为人知的水墨画作之谜招摇定档0128小年夜白鹿首演女魔头看点十足聆听万籁五年级作文棋盘杨庄第三届农民丰收节日赞文依然(徐健)

友情链接:中准网聚热点快百科快传网快生活快软网快好知文好找美丽时装彩妆资讯历史明星乐活安卓数码常识驾车健康苹果问答网络发型电视车载室内电影游戏科学音乐整形