数据宽度和指令集
n ARM 是 32-bit 体系结构.
n 在 ARM 中:
n Byte 字节代表 8 bits
n Halfword 半字 16 bits (two bytes)
n Word 字 32 bits (four bytes)
n 大多数t ARM’s 实现两个指令集(Instruction Set)
n 32-bit ARM 指令集
n 16-bit Thumb 指令集
n Jazelle 内核可以执行 Java 字节码
处理器模式
ARM 拥有7种操作模式:
a) User : 大多数任务运行的非特权模式unprivileged mode under which most tasks run
b) FIQ : 当高优先级的中断产生时进入entered when a high priority (fast) interrupt is raised
c) IRQ : 当低优先级级普通中断产生时进入entered when a low priority (normal) interrupt is raised
d) Supervisor : 系统重启时或软件中断时进入entered on reset and when a Software Interrupt instruction is executed
e) Abort : 用来处理内存存取异常used to handle memory access violations
f) Undef : 用来处理为定义的指令used to handle undefined instructions
g) System : 一种和用户模式使用相同寄存器的特权模式privileged mode using the same registers as user mode
寄存器
n ARM 拥有 37 个 32-bits 寄存器.
n 1 个专用的程序计数器 program counter
n 1 个专用的程序状态寄存器 current program status register
n 5个专用的保存程序状态寄存器 saved program status registers
n 30 通用寄存器general purpose registers
n 当前的处理器模式决定哪组寄存器可用,每个模式可存取
n 一组r0-r12 寄存器
n 特殊 r13 (the stack pointer, sp) 和 r14 (the link register, lr)
n 程序计数器 program counter, r15 (pc)
n 当前程序状态寄存器 current program status register, cpsr
特权模式Privileged modes (系统模式除外) 还可
n 特殊的 spsr (saved program status register) 寄存器
Exception Handling异常处理
n 当异常发生时 ARM:
n 复制 CPSR 到 SPSR_<mode>
n 设置适当的 CPSR 位
n 进入 ARM state
n 进入 exception mode
n 禁止中断 (如需要)
n 存储返回地址于 LR_<mode>
n 设置 PC 为向量地址
n 返回时, 异常处理程序需要:
n 从 SPSR_<mode> 恢复 CPSR
n 从 LR_<mode> 恢复 PC