arm寄存器
来源:互联网 发布:屏蔽软件弹出广告 编辑:程序博客网 时间:2024/05/16 17:15
运行模式:1、用户模式,2、系统模式,3、特权模式,4、中止模式,5、未定义模式,6、外部中断模式,7、快速中断模式
1、通用寄存器
1)未备份寄存器R0-R7
在所有的处理器模式下都是同一个物理寄存器,在异常中断造成处理器模式切换时,由于不同的处理器模式使用相同的物理寄存器,可能造成寄存器中数据被破坏。
没有被系统用于特别的用途,任何可采用通用寄存器的应用场合都可以使用未备份寄存器。
2)备份寄存器R8-R14
R8-R12每个寄存器对应于两个不同的物理寄存器。
快速中断模式:R8_fiq,R9_fiq,R10_fiq,R11_fiq,R12_fiq
其他模式:R8,R9,R10,R11,R12
R11 FP frame pointer
R12 IP Intra-Procedure-call scratch register 暂存SP
R13-R14每个寄存器对应于六个不同的物理寄存器。
用户模式、系统模式:R13,R14
特权模式:R13_svc,R14_svc
中止模式:R13_abt,R14_abt
未定义模式:R13_und,R14_und
外部中断模式:R13_irq,R14_irq
快速中断模式:R13_fiq,R14_fiq
R13 SP Stack Pointer 堆栈指针
R14 LR Link Register 连接器指针
3)程序计数器PC->R15
2状态寄存器
CPSR(当前程序状态寄存器)可以在任何处理模式下被访问。
SPSR(备份程序状态寄存器)每一种模式下都有一个专用的物理状态寄存器。
1)条件标志位
位31:N(Negative) 当前指令运算结果的bit[31]的值,N=1表示运算结果为负,N=0表示运算结果为正或零
位30:Z(Zero) Z=1表示运算结果是0,Z=0表示运算结果不是零
位29:C(Carry) C=1表示有进位或借位,C=0表示无进位或借位
位28:V(oVerflow) V=1表示符号位溢出
2)Q标志位
位27:Q 指示增强的DSP指令是否发生了溢出
3)控制位
位7:I I=1表示禁止IRQ中断
位6:F F=1表示禁止FIQ中断
位5:T T=0表示执行ARM指令,T=1表示执行Thumb指令
位4-0:M M=10000 User
10001 FIQ
10010 IRQ
10011 Supervisor
10111 Abort
11011 Undefined
11111 System
- ARM寄存器
- Arm寄存器
- ARM寄存器
- ARM寄存器
- arm寄存器
- ARM寄存器
- arm寄存器
- ARM寄存器
- arm 寄存器
- ARM 寄存器
- ARM寄存器
- ARM寄存器
- ARM 寄存器
- Arm 寄存器
- ARM寄存器
- ARM寄存器
- ARM寄存器
- ARM寄存器
- 关于Cross-Dll问题(在不同的模块之间申请和释放内存)
- Copy .vdi file by changing UUID in VirtualBox
- hdu 2066 一个人的旅行
- C#事件与代理的简单运用
- Git详解之四 服务器上的Git
- arm寄存器
- uva557 - Burger(汉堡)
- Combinations
- Eric Steven Raymond,How To Become A Hacker
- 给一个配置挺不错的
- C#简单代理例子
- 白话数字签名(1)——基本原理(新!)
- 状态模式之观察者和状态模式
- make Image uImage与zImage的区别