ARM工作模式及寄存器

ARM指令集

ARM支持三种指令集:

  1. ARM指令集:32位指令集(每个指令通过32位表示,即机器码为4字节),比较庞大和复杂
  2. Thumb指令集:16位指令集,指令更精简,但是代码密度高,且性能更低
  3. cortex-A系列及以上的处理器支持Thumb-2指令集,16和32位混合指令集

CPU组成

  1. ALU单元:运算器
  2. 控制器
  3. CPU内存寄存器
  4. CPU内部总线(控制、数据、地址)

ARM三级流水线

在这里插入图片描述

ARM处理器模式

  不同的ARM系列模式不同,Cortex-M系列有7种模式、Cortex-A系列有9种模式

模式功能
USER大部分模式运行时的非特权模式
FIQ进入FIQ中断异常
IRQ进入IRQ中断异常
SVC超级特权模式,管理调用指令或者reset的时候

  除了user模式其余的都是特权模式

ARM寄存器介绍

  arm寄存器(ARMv7):
在这里插入图片描述

  ARM处理器一般共有37个寄存器,包括31个通用寄存器和6个状态寄存器。
  其中R0-R12除了FIQ模式自己独有(R8-R12)寄存器外所有ARM模式下共享,PC和APSR\CPSR也是所有模式共享,使用ARM指令集R0-R12都能访问,使用Thumb只能访问R0-R7寄存器

  1. R0-R11,12个寄存器为通用寄存器
  2. R12(FP),指向帧底
  3. R13(SP),指向栈顶
  4. R14(LR),连接寄存器
  5. R15(PC),程序计数器,总是指向下面要运行的两条指令的地址,即当前指令地址+8
  6. APSR\CPSR,程序状态寄存器,在USER模式下叫APSR,应用程序寄存器,在其他模式下叫CPSR,叫当前程序寄存器
  7. SPSR,存储程序状态寄存器,保存中断前的CPSR寄存器
  8. CPSR程序状态寄存器,他其实就是当前运行的的ARM指令
    在这里插入图片描述
    N: 当两个表示的有符号整数运算时,1表示运算结果为负数,0表示结果为正或零。
    Z:1表示运算的结果为零,0表示运算的结果不为零。对于CMP指令,1表示进行比较的两个数大小相等。
    C:进位置标志位
    GE[3:0]:SIMD指令使用。也不知道是啥
    E:大端模式还是小端模式
    A:是否禁用掉abort模式
    I:1 表示禁止外部(硬件)中断(IRQ)
    F:1 表示禁止快速中断(FIQ)
    T:1表示为thumb状态0为arm状态
    M[4:0]:用来设置处理器的工作模式,即上面介绍过的USER、FIQ等。
  • 2
    点赞
  • 10
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值