ARM学习笔记(三)--Thumb状态下寄存器

Thumb状态下寄存器

Thumb状态下的寄存器集是ARM状态下寄存器集的一个子集,程序可以直接访问8个通用寄存器(R7~R0)、程序计数器(PC)、堆栈指针(SP)、链接寄存器(LR)和CPSR。同时,在每一种特权模式下都有一组SP、LR和SPSR。

图说明了Thumb状态下的寄存器组织。

在Thumb状态下,高位寄存器R8~R15并不是标准寄存器集的一部分,但可使用汇编语言程序受限制地访问这些寄存器,将其用作快速的暂存器。使用带特殊变量的MOV指令,数据可以在低位寄存器和高位寄存器之间进行传送;高位寄存器的值可以使用CMPADD指令进行比较或加上低位寄存器中的值。

ARM状态寄存器与Thumb状态寄存器之间的关系

1.Thumb 状态 R0~R7 ARM状态 R0~R7相同

2.Thunb 状态CPSR(无SPSR)与ARM状态CPSR相同。由于Thumb指令集不包括MSRMRS指令,如果用户需要修改CPSR的任何标志位,必须回到ARM模式。通过BXBLX指令来改变指令接模式,而且当完成复位(Reset)或者进入到异常模式时,将会被自动切换到ARM模式(注意:所有的异常处理都是在ARM状态下处理的,在Thumb状态下,如果有任何中断或者异常标志出现,处理器自动切换到ARM状态下进行异常处理,完成后,有自动切换到Thumb状态

3.Thumb状态下的SP对应于ARM状态下的R13。

4.Thumb状态下的LR对应于ARM状态下的R14。

5.Thumb状态下的程序计数器对应于ARM状态下R15。

由以上5个关系叉可以总结出Thumb、ARM状态寄存器的映射图

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

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值