【汇编指令】ARM指令集之寄存器及32位概述
来源:互联网 发布:淘宝美工作品图片大全 编辑:程序博客网 时间:2024/06/05 10:45
1)
ARM处理器有37+3个32位寄存器:其中有32个通用寄存器,只有一个PC指针寄存器,一般习惯用R15来指向正在取指的指令,而不是正在执行的指令。(这里涉及到arm处理器的流水线操作流程,下面在介绍),七个状态寄存器:但是只有一个CPSR寄存器(用来表示当前程序状态寄存器),6个SPSR寄存器(用来保存备份当前程序状态的异常数据)。
处理器在工作时有8种不同的工作模式,对应的每一种处理器模式都有一组相应的寄存器组:
这里USER/SYS工作模式共用一个寄存器组,但是USER模式没有特权,而且没有对应的SPSR寄存器
当前处理的模式决定了哪组寄存器可以以操作,任何模式都可以存取的寄存器。
(1)相应的R0~R12
(2)相应的R13(SP,栈顶指向)和R14(LR,链接地址寄存器,用来记录程序下次将要执行指令的地址)以及PC指针寄存器(一般习惯用R15来指向正在取指的指令,而不是正在执行的指令)
(3)相应的CPSR寄存器(能够表示当前程序的状态反应处理器当前的工作模式从而设置它的某些位来改变处理器的模式和异常模式的设置以及标准位的反映和设置)
(4)在特权模式下还可以存取相应的异常模式时CPSR寄存器
arm处理器 的 8种工作模式:
ARM处理器按照一系列的步骤来执行每一条指令:简单的一般使用3级流水线
(1)取指令:从寄存器加载一条指令
(2)译码:识别被执行的指令,并为下一个周期准备数据电路的控制信号,在这一级别,指令占有译码逻辑,不占据数据通路
(3)执行:处理指令并将结果写回寄存器
CPSR寄存器位的分配:
其中N(负数标志)Z(零标志)C(进位标志)V(溢出标志)/ / 其中0~4位标志模式为I(IRQ使能位)F(FIQ使能位)T(状态位)
N:当N = 1 时表示负数,N = 0表示整数或者零
控制位:
1)中断禁止位:当I或F = 1 时 ,表示中断进制
2)状态控制位:当T = 0时表示处于ARM状态
3)模式控制位:
MODE(以下为二进制)
10000
用户模式
PC,CPSR,R0~R14
10001
FIQ
PC,CPSR,SPSR_fiq,R14_fiq~R8_fiq,R7~R0
10010
IRQ
PC,CPSR,SPSR_irq,R14_irq~R13_irq,R12~R0
10011
管理模式(svc)
PC,CPSR,SPSR_svc,R14_svc~R13_svc,R12~R0
10111
终止模式
PC,CPSR,SPSR_abt,R14_abt~R13_abt,R12~R0
11011
未定义
PC,CPSR,SPSR_und,R14_und~R13_und,R2~R0
11111
系统模式(sys)
PC,CPSR,R14 ~R0
- 【汇编指令】ARM指令集之寄存器及32位概述
- ARM处理器 寄存器 汇编指令集
- 32位CPU寄存器和汇编指令
- 32位CPU寄存器和汇编指令
- 32位CPU寄存器和汇编指令
- 32位CPU寄存器和汇编指令
- 32位CPU寄存器和汇编指令
- 32位CPU寄存器和汇编指令
- 32位CPU寄存器和汇编指令
- 【汇编指令】arm指令集之但寄存器数据load/store (加载存储)
- 9.ARM汇编指令集概述
- 【汇编指令】ARM指令集之PSR传送指令
- ARM寄存器与汇编指令详解
- ARM寄存器与汇编指令详解
- ARM寄存器与汇编指令详解
- 常用ARM指令集及汇编
- ARM汇编指令集
- ARM汇编指令集
- python多线程的简单使用
- Edit Distance----hard
- 后DIY时代,再谈超频
- 机器学习实战(第一章)---KNN算法
- Objective-C学习笔记(一)-准备工作
- 【汇编指令】ARM指令集之寄存器及32位概述
- 大数阶乘
- mac下安装配置Tomcat
- 快速排序之 Scala & Python
- RAB/RB/RL/RRC的概念
- 睡觉吃饭打豆豆
- 详解Android动画之Frame Animation
- Linux Netfilter实现机制和扩展技术
- eclipse定制及快捷键