问答文章1 问答文章501 问答文章1001 问答文章1501 问答文章2001 问答文章2501 问答文章3001 问答文章3501 问答文章4001 问答文章4501 问答文章5001 问答文章5501 问答文章6001 问答文章6501 问答文章7001 问答文章7501 问答文章8001 问答文章8501 问答文章9001 问答文章9501

arm 指令集adrp x3,0xffffffc0013b7000 什么意思

发布网友 发布时间:2022-04-29 23:22

我来回答

1个回答

热心网友 时间:2022-06-25 18:37

ARM汇编有ldr指令以及ldr、adr伪指令,它们都可以将标号表达式作为操作数,下面通过分析一段代码以及对应的反汇编结果来说明它们的区别。
ldr r0, _start
adr r0, _start
ldr r0, =_start
_start:
b _start
编译的时候设置 RO 为 0x30000000,下面是反汇编的结果:
0x00000000: e59f0004 ldr r0, [pc, #4] ; 0xc
0x00000004: e28f0000 add r0, pc, #0 ; 0x0
0x00000008: e59f0000 ldr r0, [pc, #0] ; 0x10
0x0000000c: eafffffe b 0xc
0x00000010: 3000000c andcc r0, r0, ip
1.ldr r0, _start
这是一条指令,从内存地址 _start 的位置把值读入。
在这里_start是一个标号(是一个相对程序的表达式),汇编程序计算相对于 PC 的偏移量,并生成相对于 PC的前索引的指令:ldr r0, [pc, #4]。
执行指令后,r0 =0xeafffffe。
ldr r0, _start是根据_start对当前PC的相对位置读取其所在地址的值,因此可以在和_start标号的相对位置不变的情况下移动。
2.adr r0, _start
这是一条伪指令,总是会被汇编程序汇编为一个指令。
汇编程序尝试产生单个 ADD或 SUB 指令来装载该地址。
如果不能在一个指令中构造该地址,则生成一个错误,并且汇编失败。
在这里是取得标号_start 的地址到 r0,因为地址是相对程序的,因此ADR产生依赖于位置的代码,在此例中被汇编成:add r0, pc, #0。
因此该代码可以在和标号相对位置不变的情况下移动;
假如这段代码在 0x30000000 运行,那么 adr r0, _start 得到 r0 = 0x3000000c;
如果在地址 0 运行,就是 0x0000000c 了。
通过这一点可以判断程序在什么地方运行。
U-boot中那段relocate代码就是通过adr实现当前程序是在RAM中还是flash中,下面进行简要分析。
声明声明:本网页内容为用户发布,旨在传播知识,不代表本网认同其观点,若有侵权等问题请及时与本网联系,我们将在第一时间删除处理。E-MAIL:11247931@qq.com
家里鱼缸摆放什么最旺财 鱼缸放什么最旺盛 鱼缸放什么聚财最旺 宝宝脸红涂什么能好 怎么在电脑上查询淘宝订单? 宝宝睡觉脸红怎么回事 超声波探伤仪斜探头k2.5前沿长度大概多少 我下的红警地图 是不是应该放在这个文件夹里?可是没用啊 打开游戏地图... 夜游武宁西海湾景区能看到怎样的景色? 贷款用什么app软件最好 相亲心烦 (相亲烦恼) 电脑蓝屏代码OX00000050(OXEFFFFFFC,OX00000001,OX8080FCSD,OX60J) 急!!!大龄女孩的超级相亲烦恼!! 过年不想去相亲:为了解决相亲烦恼,姑娘用了什么招? 电脑老蓝屏代码是STOP:0X00000050(0XFFFFFFC,0X00000000,0X804F37D7,0X00000000) FFF团的活动范围(现实中) 相亲的烦恼 应用程序错误(oxo3337cd5指令引用的ox1047fffc内存。该内存不能为READ) 天天相亲烦死了? 相亲烦死了 十六进制FFF.C转换成十进制!详细过程! 相亲烦恼 汇编语言中DS:2000=FFFC是什么意思 相亲的烦恼! 求会计、财务、出纳的岗位说明书 财务部职能职责及岗位说明书1 请高手解答:oracle如何掌握用户对数据库所作的各种操作 请教达人:小苏打(碳酸氢钠)在生活中有什么妙用呢?据我所知可以洗碗 蒜苔木耳炒肉的做法大全家常窍门 相亲烦恼! 电脑使用中突然蓝屏是怎么回事?显示代码是STOP:0X00000050(0XFFFFFFC,0X00000000,0X8054C51A,0X00000000 还是烦人的相亲烦恼啊 c的问题fff 盐水花生咋炒 相亲烦恼,欢迎朋友们也来分享一下自己的故事 电脑蓝屏死机代码0*0000000A(0*0056FFFC/0*000000C/0*00000000/0*80503367) 本人男。年周岁20。家里天天嘟囔着相亲真烦 0x0000007e(0xfffffffffc0000005,0xfffff80003ee7150 蓝屏代码0X000000D1(0XFFFFFFC,0X00000002,0X00000000,0XBA62FBFA) WIN7错误代码:stop:0x000000d1(0xffffffc,0x0000002,0x0000000,0x95f07671)产生的原因? 急求:电脑蓝屏了怎么办(0*0000000A,0*B834FFFC,0*000000FF,0*00000001,0*8054301F) 提示0x00834293的指令不能为0xffffffc不能为read 中国人保医卡通如何激活 中国人寿医卡通能提现吗 人保医卡通网点查询 中国人保医卡通理赔服务卡里的钱有时间限制吗 中国人保医卡通冻结余额是什么意思? 杭州的中国人保医卡通可以在哪些地方使用啊?在医院里可以用吗? 医卡通可以电话解冻吗