- 2
- 0
- 约2.25万字
- 约 90页
- 2017-02-08 发布于江苏
- 举报
3.7 内部寄存器 读R15的限制 正常操作时,从R15读取的值是处理器正在取指的地址,即当前正在执行指令的地址加上8个字节(两条ARM指令的长度)。由于ARM指令总是以字为单位,所以R15寄存器的最低两位总是为0。 LDR R0,PC ??? ??? PC PC-4 PC-8 正在执行 正在译码 正在取指 流水线状态 地址 程序代码 3.7 内部寄存器 读R15的限制 当使用STR或STM指令保存R15时,会有一个例外。这些指令可能将当前指令地址加8字节或加12字节保存(将来可能还有其它数字)。偏移量是8还是12取决于具体的ARM芯片,但是对于一个确定的芯片,这个值是一个常量。 所以最好避免使用STR和STM指令来保存R15,如果很难做到,那么应当在程序中计算出该芯片的偏移量。 3.7 内部寄存器 读R15的限制 计算偏移量程序代码: SUB R1,PC,#4 ;R1=下面STR指令的地址 STR PC,[R0] ;保存STR指令地址+偏移量 LDR R0,[R0] ;然后重装 SUB R0,R0,R1 ;计算偏移量 3.7 内部寄存器 写R15的限制 正常操作时,写入R15 的值被当作一个指令地址,程序从这个地址处继续执行(相当于执行一次无条件跳转)。 3.7 内部寄存器 写R15的限制
您可能关注的文档
最近下载
- 安全法律法规培训试题及答案解析.doc VIP
- 消防法律法规考试题库.pdf VIP
- (高清版)DB13∕T 2770-2018 焊接熔深检测方法.docx VIP
- 高等代数(第五版)张禾瑞习题答案解析.pdf
- 芜湖车务段招聘笔试题库2026.pdf
- 2025年12月全国科学创新实践活动(原华数杯)初中数学八年级竞赛四级组试卷(含答案).docx VIP
- SAE USCAR-2-2020 SAE 标准规范下载.docx VIP
- 初三学习策略讲座PPT模板.pptx VIP
- 100以内的加法和减法( 退位减).pdf VIP
- 国家开放大学《Python语言基础》实验4:条件分支结构基本应用参考答案.docx VIP
原创力文档

文档评论(0)