一、数据存储格式
1、半字:从偶数地址开始的连续2个字节构成一个半字;
字:以能被4整除的地址开始的连续4个字节构成一个字;
ARM指令的长度刚好是一个字,Thumb指令的长度刚好是一个半字。
2、存储器格式
3、大小端存储
二、处理器状态
ARM920T处理器内核包含2套指令系统,分别为ARM 指令集和Thumb 指令,并且各自对应1种处理器的状态;
(1)、ARM状态:32位,处理器执行字方式的ARM指令,处理器默认为此状态;
(2)、Thumb状态:16位,处理器执行半字方式的Thumb指令。
注意:两个状态之间的切换并不影响处理器模式或寄存器内容。
三、处理器模式
ARM 有7个基本工作模式,可以更好的支持操作系统并提高工作效率。
(1)、用户模式(usr):正常程序执行的模式,大部分任务执行在这种模式。
(2)、快速中断模式(fiq):高速数据传输或通道处理。当一个高优先级(fast)中断产生时将会进入这种模式。
(3)、外部中断模式(irq):通常的中断处理。当一个低优先级(normal)中断产生时将会进入这种模式。
(4)、管理模式(svc):供操作系统使用的一种保护模式。当复位或软中断指令执行时将会进入这种模式。
(5)、中止模式(abt):虚拟存储及存储保护。当存取异常时将会进入这种模式。
(6)、未定义模式(und):软件仿真硬件协处理器。当执行未定义指令时会进入这种模式。
(7)、系统模式(sys):特权级的操作系统任务。
四、内部寄存器
1、寄存器
寄存器R8~R12有两个分组的物理寄存器。一个用于除FIQ模式之外的所有寄存器模式,另一个用于FIQ模式。在发生FIQ中断后,处理器不必为保护寄存器而浪费时间,从而加速了FIQ的处理速度。
寄存器R13通常作为堆栈指针(SP),用于保存待使用的寄存器的内容。
寄存器R14称为链接寄存器(LR),在结构上有两个特殊功能:(1)当使用BL指令调用子程序时,返回地址将自动存入R14中;(2)当发生异常时,将R14对应的异常模式版本设置为异常返回地址(有些异常有一个小的固定偏移量)。
寄存器R13、R14分别有6个分组的物理寄存器。1个用于用户和系统模式,其余5个分别用于5种异常模式。
寄存器R15称为程序计数器(PC),它指向正在“取指”的指令。
寄存器CPSR为当前程序状态寄存器,在异常模式中,另外一个寄存器“程序状态保存寄存器(SPSR)”可以被访问。每种异常都有自己的SPSR,在进入异常时它保存CPSR的当前值,异常退出时可通过它恢复CPSR。
2、状态寄存器
格式如下:
(1)、中断禁止控制位I和F
五、异常介绍
1、ARM 有7种异常