完善资料让更多小伙伴认识你,还能领取20积分哦, 立即完善>
B 和 BL 指令都是 相对跳转(短跳转) 指令,通过偏移量跳转, 最大跳转距离是 ±32M
使用 mov pc, <>可以实现 对跳转(长跳转)(不会保存当前 PC 值) 关于B指令和BL指令最大跳转距离是 ±32M: ARM汇编每条指令占用 4byte,生成机器码 B 、BL存放在bits[31:24], bits[23:0]是立即数空间,可以表示 2^24个地址。由于每条汇编指令占用4byte字节(最低两位都为 0),因此可以使用 24位二进制数来表示 26 位的寻址空间。 B指令和BL指令的区别: B指令在使用时不会对当前 PC 值进行保存,为保证跳转指令执行后能正常返回,要手动对其进行保存 BL (带连接的跳转指令)能够在跳转时对当前 PC 值自动进行保存。 Thumb的B系列指令跳转范围只有256字节,然而大多数情况下跳转范围都会大,所以一般inlinehhok采用LDR PC, [PC, ?]构造跳转指令。) B,BL指令保存的是偏移地址,这个地址的计算方法是: 假设跳转指令处的地址是A,跳转目标处的地址是B. 1.B-(A+8).A+8是因为ARM的流水线使得指令执行到A处时,PC实际的值是A+8. 2.第一步得到的值是4的倍数,因为ARM的指令是4对齐的,即最低两位为00.于是将这个值右移两位. 3.得到最终偏移 所以跳转的范围为正负32M(-2^25 ~ 2^25有一位符号位), |
|
相关推荐
3个回答
|
|
B 和 BL 指令都是 相对跳转(短跳转) 指令,通过偏移量跳转, 最大跳转距离是 ±32M
|
|
|
|
使用 mov pc, <>可以实现 对跳转
|
|
|
|
B-(A+8).A+8是因为ARM的流水线使得指令执行到A处时,PC实际的值是A+8
|
|
|
|
你正在撰写答案
如果你是对答案或其他答案精选点评或询问,请使用“评论”功能。
飞凌嵌入式ElfBoard ELF 1板卡-烧录流程介绍之单独更新内核
856 浏览 1 评论
飞凌嵌入式ElfBoard ELF 1板卡-TF卡烧录流程之烧写过程
836 浏览 0 评论
iTOP-3A5000主控板龙芯架构外加机箱就是一台电脑主机
1251 浏览 0 评论
迅为RK3568开发板EMMC镜像导出打包update.img
1542 浏览 0 评论
飞凌嵌入式-ELFBOARD 硬件知识分享-ELF 2电源威廉希尔官方网站 讲解
1752 浏览 0 评论
小黑屋| 手机版| Archiver| 电子发烧友 ( 湘ICP备2023018690号 )
GMT+8, 2025-1-4 13:52 , Processed in 0.687705 second(s), Total 75, Slave 59 queries .
Powered by 电子发烧友网
© 2015 bbs.elecfans.com
关注我们的微信
下载发烧友APP
电子发烧友观察
版权所有 © 湖南华秋数字科技有限公司
电子发烧友 (威廉希尔官方网站 图) 湘公网安备 43011202000918 号 电信与信息服务业务经营许可证:合字B2-20210191 工商网监 湘ICP备2023018690号