1.ARM汇编学习——CPSR寄存器、CPSR_cxsf
来源:互联网 发布:微电影网络发行 编辑:程序博客网 时间:2024/06/05 15:59
1: ARM每种工作模式除R0~R15共16个寄存器外,还有第17个寄存器CPSR,叫做 当前程序状态寄存器,CPSR中一些位被用于标识各种状态,一些位被用于标识当前出于什么工作模式。
2:这个状态寄存器的32位可以分为四个8位的域,所以,如果CPSR后面加上,c,x,s,f都是容易理解的
其中cpsr_c代表的是cpsr寄存器的低8位,也就是控制位.
有些程序里这样写.
msr cpsr_c, #0xd2 @ 进入中断模式.
3:各个位的详细说明
使用实例:
USR_MODE EQU 0x10
FIQ_MODE EQU 0x11
IRQ_MODE EQU 0x12
SVC_MODE EQU 0x13
ABT_MODE EQU 0x17
UDF_MODE EQU 0x1B
SYS_MODE EQU 0x1F
I_BIT EQU 0x80
RAM_Limit EQU 0x2000000 ; For unexpanded hardware board
UND_Stack EQU RAM_Limit
Abort_Stack EQU RAM_Limit-256
FIQ_Stack EQU RAM_Limit-512 ; followed by IRQ stack
SVC_Stack EQU RAM_Limit-1024 ; SVC stack at top of memory
IRQ_Stack EQU RAM_Limit-2048 ; followed by IRQ stack
USR_Stack EQU RAM_Limit-10240F_BIT EQU 0x40
;设置对应模式下的堆栈指针,同时禁止中断和快中断
MSR CPSR_c, #UDF_MODE :OR: I_BIT :OR: F_BIT
LDR SP, =UND_Stack
MSR CPSR_c, #ABT_MODE :OR: I_BIT :OR: F_BIT
LDR SP, =Abort_Stack
MSR CPSR_c, #IRQ_MODE :OR: I_BIT :OR: F_BIT
LDR SP, =IRQ_Stack
MSR CPSR_c, #FIQ_MODE :OR: I_BIT :OR: F_BIT
LDR SP, =FIQ_Stack
MSR CPSR_c, #SYS_MODE :OR: I_BIT :OR: F_BIT
LDR SP, =USR_Stack
MSR CPSR_c, #SVC_MODE :OR: I_BIT :OR: F_BIT
LDR SP, =SVC_Stack
- 1.ARM汇编学习——CPSR寄存器、CPSR_cxsf
- cpsr-------cpsr_cxsf
- 影响CPSR状态寄存器的ARM汇编指令--总结
- arm cpsr寄存器解析
- Arm汇编学习笔记(八)——寄存器的使用
- ARM状态寄存器 CPSR SPSR
- ARM状态寄存器CPSR SPSR
- ARM汇编学习之寄存器
- Arm汇编学习笔记(四)——Arm的37个寄存器和异常处理
- ARM中的程序状态寄存器(CPSR)
- ARM中的程序状态寄存器(CPSR)
- 详细解读ARM寄存器之CPSR
- arm状态寄存器CPSR的一些知识
- 关于arm寄存器 CPSR域的解释
- 详细解读ARM寄存器之CPSR
- arm CPSR/SPSR寄存器的访问、修改
- ARM中的程序状态寄存器(CPSR)
- ARM中程序状态寄存器CPSR结构
- 10 嵌套循环(NESTED LOOP)--优化主题系列
- 【头条】戴尔网络:软、硬"两条腿"践行开放战略
- 关于Django + Nginx + uWSGI 配置总结
- Consistent hashing 一致性哈希算法以及Java实现(已做测试)
- Java single number
- 1.ARM汇编学习——CPSR寄存器、CPSR_cxsf
- I
- qwtpolar编译过程
- Andrew NG 机器学习 笔记-week5-神经网络的学习(Neural Networks:Learning)
- QT5 串口(com)通信_16进制数发送与接收以及接收数据提取
- 相关系数的匹配
- PowerManager的用法分析
- node.js console使用总结
- 【动态】伦敦著名黄金交易商接受比特币支付