一、2种工作状态
1、ARM 态:32位,执行字对其的32位 ARM 指令;
2、Thumb 态:16位,执行半字对齐的16位指令。
3、两种状态间使用 Bx Rn 指令进行切换:
Bx是跳转指令,而Rn是寄存器(1个字,32位),如果Rn的位0为1,则进入Thumb状态;如果Rn的位为0,这进入ARM状态。原 因:ARM指令的后两位始终为0,没有用,而Thumb指令的后一位始终为0,没有用,因此采用位0来表示ARM指令与Thumb指令的切换标志位。ARM和Thumb两种状态之间的切换不影响处理器的工作模式和寄存器的内容;ARM处理器在处理异常时,不管处理器处于什么状态,则都将切换到ARM状态。现在几乎只需要关注 ARM 态。
二、7种工作模式
三、37 个寄存器
如上所示: I位置位表示禁用中断,F位置位表示禁用快速中断;T位决定处理器当前工作模式。
NZCV 为条件码,它们会影响指令的操作,这一点将会在下面看到。
四、ARM 的指令系统
1、特点
① ARM内核属于RISC结构,所以其指令集有着一些独特的特点:指令长度固定,指令格式的种类少,寻址方式简单;
② ARM处理器的指令集是加载/存储型的,也即指令集仅能处理寄存器中的数据,而且处理结果都要放回寄存器中,而对系统存储器的访问则需要通过专门的加载/存储指令来完成。