微波EDA网,见证研发工程师的成长!
首页 > 硬件设计 > 嵌入式设计 > ARM寄存器小结

ARM寄存器小结

时间:11-09 来源:互联网 点击:

指令来保存R15的值。
当成功的向R15写入一个数值时,程序将跳转到该地址执行。由于ARM指令是字对齐的,写入R15的值应满足bits[1:0]为0b00,具体要求arm各版本有所不同:
**对于arm3以及更低的版本,写入R15的地址值bits[1:0]被忽略,即写入r15的地址值将与0xFFFF FFFC做与操作。
**对于ARM4以及更高的版本,程序必须保证写入R15的地址值bits[1:0]为0b00,否则将产生不可预知的后果。
对于Thumb指令集来说,指令是半字对齐的,处理器将忽略bit[0]。

CPSR(当前程序状态寄存器)可以在任何处理器模式下被访问。它包含了条件标志位、中断禁止位、当前处理器模式标志以及其他的一些控制和状态位。

每一种处理器模式下都有一个专用的物理状态寄存器,称为SPSR(备份程序状态寄存器)。当特定的异常中断发生时,这个寄存器用于存放当前程序状态寄存器的内容。在异常中断程序退出时,可以用SPSR中保存的值来恢复CPSR。由于用户模式和系统模式不是异常中断模式,所以它们没有SPSR。当在用户模式或系统模式中访问SPSR,将会产生不可预知的结果。

CPSR的格式如下所示。SPSR格式与CPSR格式相同。

31302928272676543210
NZCVQDNM(RAZ)IFTM4M3M2M1

M0

ARM体系使用单—的平板地址空间。该地址空间的大小为232个8位字节。这些字节单元的地址是一个无符号的32位数值,其取值范围为0到232—1。ARM的地址空间也可以看作是230个32位的字单元。这些字单元的地址可以被4整除,也就是说该地址的低两位为0b00。地址为A的字数据包括地址为A、A+I、A+2、A+3,4个字节单元的内容。

在ARM版本4及以上的版本中,ARM的地址空间也可以看作是231个16位的半字单元。这些半字单元的地址可以被2整除,也就是说该地址的最低位为0b0。地址为A的半字数据包括地址为A、A+1两个字节单元的内容。

各存储单元的地址作为32位的无符号数,可以进行常规的整数运算。这些运算的结果进行232取模。也就是说,运算结果发生上溢出和下溢出时,地址将会发生卷绕。

在ARM体系中,每个字单元中包含4个字节单元或者两个半字单元:1个半字单元中包含两个字节单元。但是在字单元中,4个字节哪一个是高位字节,哪一个是低位字节则有两种不同的格式:big-endian格式和little-endian格式。

在big-endian格式中,对于地址为A的字单元包括字节单元A、A+1、A+2及A+3,其中字节单元由高位到低位字节顺序为A、A+1、A+2、A+3;地址为A的字单元包括半字单元A、A+2,其中半字单元由高位到低位字节顺序为A、A+2:地址为A的半字单元包括字节单元A、A+1,其中字节单元由高位到低位字节顺序为A、A+1。

在little-endian格式中,地址为A的字单元包括字节单元A、A+1、A+2及A+3,其中字节单元由高位到低位字节顺序为A+3、A+2、A+1、A;地址为A的字单元包括半字节单元A、A+2,其中半字单元由高位到低位字节顺序为A+2、A;地址为A的半字单元包括字节单元A、A+1,其中字节单元由高位到低位字节顺序为A+1、A


Copyright © 2017-2020 微波EDA网 版权所有

网站地图

Top