ARM框架学习笔记 part1 寄存器、存储空间

通用寄存器

通用寄存器可以分为下面3类
- 未备份寄存器(The unbanked registers),包括R0~R7
- 备份寄存器(The banked registers),包括R8~R14。
- 程序计数器PC,即R15。

R0 - R7

  • 未备份寄存器 可用做通用寄存器

R8 - R12

  • 备份寄存器 可用做通用寄存器
  • R13 R14也是备份寄存器

R13 (SP)

  • 常用做栈指针 Stack Pointer, SP

R14 (LR)

  • 连接寄存器 Link Register, LR
  • 当通过BL或BLX指令调用子程序时,R14被设置成该子程序的返回地址。在子程序中,当把R14的值复制到程序计数器PC中时,子程序即返回

R15 (PC)

  • 程序计数器 Program Counter, PC
  • ARM采用流水线机制,当正确读取了PC的值时,该值为当前指令地址值加8个字节。也就是说,对于ARM指令集来说,PC指向当前指令的下两条指令的地址。
  • ARM指令是字对齐的,PC值的第0位和第1位总为0。当使用指令STR/STM保存R15时,保存的可能是当前指令地址值加8或12字节(取决于不同芯片)

程序状态寄存器

CPSR

  • 当前程序状态寄存器
  • 包含了条件标志位、中断禁止位、当前处理器模式标志以及其他的一些控制和状态位

SPSR

  • 备份程序状态寄存器
  • 特定的异常中断发生时,这个寄存器用于存放当前程序状态寄存器的内容。在异常中断程序退出时,可以用SPSR中保存的值来恢复CPSR。

条件标志位

  • N(Negative) N=1 负数
  • Z(Zero) Z=1 零
  • C(Carry) C=1 进位
  • V(oVerflow) V=1 符号位溢出

    以下指令会影响CPSR的条件标志位

    1. 比较指令,如: CMP、CMN、TEQ、TST等。
    2. 当一些算术逻辑运算的目标寄存器不是PC时,这些指令会影响CPSR的条件标志位。
    3. MSR与MRS指令可以对CPSR/SPSR进行操作。
    4. LDM指令可以将SPSR复制到CPSR中。

CPSR中的控制位

  • CPSR的低8位I、F、T及M[4:0]统称为控制位 当异常中断发生时这些位发生变化

    • 中断禁止位
      当I=1时禁止IRQ中断,当F=1时禁止FIQ中断。

    • T控制位
      T=0表示执行ARM指令。T=1表示执行Thumb指令(armv4)。 T=1表示强制下一条执行的指令产生未定义指令中断(armv5)。

    • M控制位
      控制位M[4:0]控制处理器模式。

ARM体系中的存储空间

  • ARM体系使用单一的平板地址空间。

    • 地址空间的大小为2^32个8位字节。
    • 这些字节单元的地址是一个无符号的32位数值,其取值范围为0到2^32-1。
    • ARM的地址空间也可以看作是2^32个32位的字单元。
    • 这些字单元的地址可以被4整除,也就是说该地址的低两位为0b00。
    • 地址为A的字数据包括地址为A,A+1,A+2,A+3 4个字节单元的内容。
  • 在ARM版本4及以上的版本中,ARM的地址空间也可以看作是2^31个16位的半字单元。

    • 这些半字单元的地址可以被2整除,也就是说该地址的最低位为0b0。
    • 地址为A的半字数据包括地址为A,A+1两个字节单元的内容。

ARM存储器格式

  • big-endian
  • little-endian
  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

TaQini852

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值