ARM Notes
ARM基础,ARM调试,AARCH64
ARM 的寄存器
16个寄存器
编号 | 说明 |
---|---|
R0-R12 | 通用寄存器 |
R13 | SP (stack pointer) |
R14 | LR (link register) |
R15 | PC (program counter) |
xPSR: Program Status Register (x: Current copy to Saved)
PSR | Condition Flags |
---|---|
Q | Saturation |
V | oVerflow |
C | Carry |
Z | Zero |
N | Negative |
ARM 模式
ARM 的异常模式(Exception)
- 6种特权模式(Privileged Mode),1种非特权模式(Unprivileged Mode)
简写 | 全称 | 中文 | 常见原因 |
---|---|---|---|
特权模式 | |||
abt | Abort | 内存访问错误 | |
fiq | Fast Interrupt Request | ||
irq | Interrupt Request | ||
svc | Supervisor | 系统复位 | |
sys | System | A special mode allow r/w to CPSR, no banked register | |
und | Undefined | ||
非特权模式 | |||
usr | User Mode |
ARM 指令集
条件执行 (Conditional Execution )
简写 | 全称 |
---|---|
EQ | Equal |
NE | Not equal |
CS | Carry set, Greater than |
CC | Carry clear, Less than |
MI | Minus, Less than |
PL | Plus, Greater than |
VS | Overflow |
VC | No overflow |
HI | Greater than |
LS | Less than or equal |
GE | Greater than or equal |
LT | Lesser than |
GT | Greater than |
LE | Lesser than or equal |
后缀
.N Narrow, 16位ARM指令 .W Wide, 32位ARM指令
Cache L1 Cache Level composes Cache and Write Buffer Logical Cache & Physical Cache
The L1 Cache is Harvard (Separate instruction and data) The L2 cache is Von Neumann
Dirty bit: Cache data different from memory Bit:
Register Call Save R0~R3, R12, R14, PSR are -> caller saved registers R4~R11 are -> callee saved registers
Exception Handling
简写 | 全称 |
---|---|
0x00 | Reset |
0x04 | Undefined Instruction |
0x08 | Software Interrupt |
0x0C | Prefetch Abort |
0x10 | Data Abort |
0x14 | Not Assigned |
0x18 | IRQ |
0x1C | FIQ |