ARM中的程序状态寄存器(CPSR)

发布者:alpha11最新更新时间:2019-12-23 来源: eefocus关键字:ARM中  程序状态寄存器  CPSR 手机看文章 扫描二维码
随时随地手机看文章
31302928

27~8
76543210
NZCV保留IFTM4M3M2M1M0


















NNegative/Less Than




I
IRQ disable
ZZero








F
FIQ disable
CCarry/Borrow/Extend




T
State bit
VOverflow







M0~4Mode bits


1、条件码标志

  N、Z、C、V均为条件码标志位。它们的内容可被算术或逻辑运算的结果所改变,并且可以决定某条指令是否被执行。条件码标志各位的具体含义如下表所示:


标志位含                                义
N当用两个补码表示的带符号数进行运算时,N=1表示运算的结果为负数;N=0表示运算的结果为正数或零
ZZ=1表示运算的结果为零,Z=0表示运算的结果非零。
C可以有4种方法设置C的值:
 -加法运算(包括CMP):当运算结果产生了进位时(无符号数溢出),C=1,否则C=0。
 -减法运算(包括CMP):当运算时产生了借位时(无符号数溢出),C=0,否则C=1。
 -对于包含移位操作的非加/减运算指令,C为移出值的最后一位。
 -对于其它的非加/减运算指令,C的值通常不会改变。
V可以有2种方法设置V的值:
 -对于加减法运算指令,当操作数和运算结果为二进制的补码表示的带符号数时,V=1表示符号位溢出
 -对于其它的非加/减运算指令,V的值通常不会改变。
Q在ARM V5及以上版本的E系列处理器中,用Q标志位指示增强的DSP运算指令是否发生了溢出。在其它版本的处理器中,Q标志位无定义


  在ARM状态下,绝大多数的指令都是有条件执行的;在THUMB状态下,仅有分支指令是条件执行的。

2 控制位

  CPSR的低8位(包括I、F、T和M[4:0])称为控制位,当发生异常时这些位可以被改变。如果处理器运行于特权模式时,这些位也可以由程序修改。

  ·中断禁止位I、F:置1时,禁止IRQ中断和FIQ中断。

  ·T标志位:该位反映处理器的运行状态。当该位为1时,程序运行于THUMB状态,否则运行于ARM状态。该信号反映在外部引脚TBIT上。在程序中不得修改CPSR中的TBIT位,否则处理器工作状态不能确定。

  ·运行模式位M[4:0]:这几位是模式位,这些位决定了处理器的运行模式。具体含义如下表所示:

  ·保留位:CPSR中的其余位为保留位,当改变CPSR中的条件码标志位或者控制位时,保留位不要改变,在程序中也不要用保留位存储数据。保留位将用于ARM版本的扩展。


M[4:0]处理器模式ARM模式可访问的寄存器THUMB模式可访问的寄存器
0b10000用户模式PC,CPSR,R0~R14PC,CPSR,R0~R7,LR,SP
0b10001FIQ模式PC,CPSR,SPSR_fiq,R14_fiq~R8_fiq,R0~R7PC,CPSR,SPSR_fiq,LR_fiq,SP_fiq,R0~R7
0b10010IRQ模式PC,CPSR,SPSR_irq,R14_irq~R13_irq,R0~R12PC,CPSR,SPSR_irq,LR_irq,SP_irq,R0~R7
0b10011管理模式PC,CPSR,SPSR_svc,R14_svc~R13_svc,R0~R12PC,CPSR,SPSR_svc,LR_svc,SP_svc,R0~R7
0b10111中止模式PC,CPSR,SPSR_abt,R14_abt~R13_abt,R0~R12PC,CPSR,SPSR_abt,LR_abt,SP_abt,R0~R7
0b11011未定义模式PC,CPSR,SPSR_und,R14_und~R13_und,R0~R12PC,CPSR,SPSR_und,LR_und,SP_und,R0~R7
0b11111系统模式PC,CPSR,R0~R14PC,CPSR,LR,SP,R0~R74


关键字:ARM中  程序状态寄存器  CPSR 引用地址:ARM中的程序状态寄存器(CPSR)

上一篇:ARM汇编中LDR与LTORG的关系
下一篇:ARM反汇编学习

推荐阅读最新更新时间:2024-10-24 19:09

ARM程序状态寄存器CPSR
31 30 29 28 27 ~ 8 7 6 5 4 3 2 1 0 N Z C V 保留 I F T M4 M3 M2 M1 M0 N Negative/Less Than I IRQ disable Z Zero F FIQ disable C Carry/Borrow/Extend T State bit V Overflow M0~4 Mode bits 1、条件码标志 N、Z、C、V均为条件码标志位。它们的内容可被算术或逻辑运算的
[单片机]
ARM程序状态寄存器CPSR
M 处理器模式 ARM模式可访问的寄存器 THUMB模式可访问的寄存器 0b10000 用户模式 PC,CPSR,R0~R14 PC,CPSR,R0~R7,LR,SP 0b10001 FIQ模式 PC,CPSR,SPSR_fiq,R14_fiq~R8_fiq,R0~R7 PC,CPSR,SPSR_fiq,LR_fiq,SP_fiq,R0~R7 0b10010 IRQ模式 PC,CPSR,SPSR_irq,R14_irq~R13_irq,R0~R12 PC,CPSR,SPSR_irq,LR_irq,SP_irq,R0~R7
[单片机]
ARM的7种工作模式、37个通用寄存器CPSR程序状态寄存器
一、ARM 采用的是32位架构 1、ARM约定 Byte:8 bits Halfword:16 bits (2 byte) Word:32 bits (4 byte) 2、大部分ARM core 提供 ARM 指令集(32-bit) 每条指令都是4个字节? Thumb 指令集(16-bit ) Thumb2指令集(16 & 32bit) 二、ARM的7种基本工作模式 普通模式(Normal) (1)User:非特权模式,大部分任务执行在这种模式 特权模式(Privilege) (2)FIQ:当一个高优先级(fast) 中断产生时将会进入这种模式 (3)IRQ:当一个低优先级
[单片机]
<font color='red'>ARM</font>的7种工作模式、37个通用<font color='red'>寄存器</font>、<font color='red'>CPSR</font><font color='red'>程序</font><font color='red'>状态</font><font color='red'>寄存器</font>
基于ARM9程序状态寄存器CPSR
定义:程序状态寄存器; 功能:反映数据运算状态,控制系统模式等; 特点:程序状态寄存器不属于通用寄存器; 关于CPSR的访问,ARM专门为其设立了两条指令: MRS:CPSR到通用寄存器传递数据指令; MSR:通用寄存器到CPRS传递数据指令; (1)MSR 通用寄存器→CPSR 格式:MSR{条件} CPSR | SPSR_field,寄存器Rm或立即数 功能:恢复或改变CPSR的值。 CPRS | SPRS:尖括号内只能是CPRS或SPRS指令,这取决于当前处理器工作模式; field域:用于设置CPSR中需要操作的位;(下面详细介绍) CPSR位域: field域的表示: 为条件标志位域,用 f 表示 为状态位域,用
[单片机]
基于<font color='red'>ARM</font>9<font color='red'>程序</font><font color='red'>状态</font><font color='red'>寄存器</font><font color='red'>CPSR</font>
ARM处理器的程序状态寄存器(CPSR,SPSR)访问指令
ARM 微处理器支持程序状态寄存器访问指令,用于在程序状态寄存器和通用寄存器之间传送 数据,程序状态寄存器访问指令包括以下两条: MRS 程序状态寄存器到通用寄存器的数据传送指令 MSR 通用寄存器到程序状态寄存器的数据传送指令 1、 MRS 指令 MRS 指令的格式为: MRS{条件} 通用寄存器,程序状态寄存器(CPSR 或SPSR) MRS 指令用于将程序状态寄存器的内容传送到通用寄存器中。该指令一般用在以下几种情况: - 当需要改变程序状态寄存器的内容时,可用MRS 将程序状态寄存器的内容读入通用寄存 器,修改后再写回程序状态寄存器。 - 当在异常处理或进程切换时,需要保存程序状态寄存器的值,可先用该指令读出程序状态
[单片机]
ARM状态寄存器CPSR SPSR
订阅专栏 ARM的状态寄存器格式如上 位 为条件标志位域,用f 表示; 位 为状态位域,用s 表示; 位 为扩展位域,用x 表示; 位 为控制位域,用c 表示; 显然,常用的只有条件标志位域f和控制位域c。 如果需要操作状态寄存器,比如切换处理器模式,就需要修改控制位域中的模式位。 MRS: 程序状态寄存器到通用寄存器的数据传送指令 MSR: 通用寄存器到程序状态寄存器的数据传送指令 附: M控制位控制处理器模式,具体含义如下: M 处理器模式 可访问的寄存器 ob10000 user pc,r14~r0,CPSR 0b10001 FIQ PC,R14_FIQ-R8_FIQ,R7~R0,CPSR,SP
[单片机]
<font color='red'>ARM</font><font color='red'>状态</font><font color='red'>寄存器</font><font color='red'>CPSR</font> SPSR
ARM状态寄存器 CPSR SPSR
CPSR:程序状态寄存器(current program status register) ,cpsr在用户级编程时用于存储条件码。CPSR包含条件码标志,中断禁止位,当前处理器模式以及其他状态和控制信息。   SPSR:程序状态保存寄存器。SPSR用于保存CPSR的状态,以便异常返回后恢复异常发生时的工作状态。 CPSR(当前程序状态寄存器)在任何处理器模式下被访问。它包含了条件标志位、中断禁止位、当前处理器模式标志以及其他的一些控制和状态位。每一种处理器模式下都有一个专用的物理状态寄存器,称为SPSR(备份程序状态寄存器)。当特定的异常中断发生时,这个寄存器用于存放当前程序状态寄存器的内容。在异常中断退出时,可以用SPSR来恢
[单片机]
影响CPSR状态寄存器ARM汇编指令总结
最近学习了ARM寄存器寻址方式和ARM指令,现在总结如下: 1、影响CPSR状态寄存器的ARM汇编指令 (1)、带S的指令有 MOVS-- 数据传送指令(只能用在寄存器和寄存器之间) MVNS-- 数据传送指令(和mov区别是,不仅进行数据传输,还进行数据取反) ADDS-- 加法指令 SUBS-- 减法指令 MULS-- 乘法指令 ANDS-- 逻辑与指令(相同是1,不同是0,区别 按位与TST 指令) ORRS-- 逻辑或指令(不同是0,相同是1,区别 按位与TST 指令) BICS-- 设置某一位为1 (2)、另外两个指令 CMP-- 比较指令 TST-- 安位与指令
[单片机]
影响<font color='red'>CPSR</font><font color='red'>状态</font><font color='red'>寄存器</font>的<font color='red'>ARM</font>汇编指令总结
小广播
设计资源 培训 开发板 精华推荐

最新单片机文章
何立民专栏 单片机及嵌入式宝典

北京航空航天大学教授,20余年来致力于单片机与嵌入式系统推广工作。

换一换 更多 相关热搜器件

 
EEWorld订阅号

 
EEWorld服务号

 
汽车开发圈

电子工程世界版权所有 京B2-20211791 京ICP备10001474号-1 电信业务审批[2006]字第258号函 京公网安备 11010802033920号 Copyright © 2005-2024 EEWORLD.com.cn, Inc. All rights reserved