嵌入式在线测试8

该篇博客详细介绍了ARM指令集中的STMIB和LDMIA指令的执行过程及其对寄存器和存储器的影响。同时,讨论了LDR指令的基本和伪指令形式,以及STR指令的三种变址模式。此外,还深入探讨了异常处理结束后CPU如何计算返回地址,特别提到了不同异常类型下的返回地址计算规则,并给出了UND异常的响应过程伪代码。
摘要由CSDN通过智能技术生成

嵌入式在线测试8

1.假设R0的内容为0x8000,寄存器R1、R2内容分别为0x33与0x55,存储器内容为空,分别执行下述每一条指令后,R0,R1,R2,R15的值各是多少?
STMIB R0! , {R1 , R2}
LDMIA R0! , {R1 , R2}

参考答案:
1.执行STMIB后R0=0x8008,存储器从地址 0X8004 开始的连续四个单元存放R1 寄存器的值 0X33,从地址 0X8008 开始的连续的四个单元存放 R2 寄存器的值 0X55,R1 和R2 寄存器的内容保持不变,R1=0x33,R2=0x55.

2.执行指令 LDMIA 时,寄存器 R0 的值变化过程如下:0X8008→0X800C→0X8010,存储器的内容不变化,寄存器 R1 的值为 0X55,寄存器 R2 的值为 0X800C 开始的四个字节的内容。

3.执行STMIB 时,PC 最开始的值为LDMIA 指令下一条指令的地址,执行完 STMIB 后 PC=PC+4,执行完 LDMIA 指令后,PC=PC+4。
2.如何辨别LDR指令是ARM的基本指令,还是伪指令?请你各举出3条数据传送LDR基本指令(前变址、回写前变址、后变址)的例子和3条LDR伪指令的例子(传立即数、传一个地址标号,传一个表达式)。
参考答案:
在基本指令LDR格式中无“=”符号;伪指令LDR格式中有“=”符号。
LDR基本指令:
前变址:LDR r0,[r1,#4]
回写

  • 1
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值