CPSR寄存器

 

    众所周知,ARM每种工作模式除R0~R15共16个寄存器外,还有第17个寄存器CPSR,叫做 当前程序状态寄存器,CPSR中一些位被用于标识各种状态,一些位被用于标识当前出于什么工作模式

    其中cpsr_c代表的是这32位中的低8位,也就是控制位
    当你看到有些程序里这样写
    msr cpsr_c 0xd2                                       //msr是arm汇编中专门用来修改cpsr这样有特定功能的寄存器的指令

                                                                      //具体请参考Arm汇编手册和Arm体系架构手册

    这样的语句时,就是在更改这8位的状态

M控制位控制处理器模式,具体含义如下:

M[4:0] 处理器模式 可访问的寄存器

ob10000 user pc,r14~r0,CPSR

0b10001 FIQ PC,R14_FIQ-R8_FIQ,R7~R0,CPSR,SPSR_FIQ

0b10010 IRQ PC,R14_IRQ-R13_IRQ,R12~R0,CPSR,SPSR_IRQ

0B10011 SUPERVISOR PC,R14_SVC-R13_SVC,R12~R0,CPSR,SPSR_SVC

0b10111 ABORT PC,R14_ABT-R13_ABT,R12~R0,CPSR,SPSR_ABT

0b11011 UNDEFINEED PC,R14_UND-R8_UND,R12~R0,CPSR,SPSR_UND

0b11111 SYSTEM PC,R14-R0,CPSR(ARM V4以及更高版本)
时间: 2024-11-25 16:02:03

CPSR寄存器的相关文章

(转)ARM汇编学习笔记——CPSR寄存器、CPSR_C

转自:http://blog.csdn.net/cos_sin_tan/article/details/7667582 内容有所改动 1:ARM每种工作模式除R0~R15共16个寄存器外,还有第17个寄存器CPSR,叫做 "当前程序状态寄存器",CPSR中一些位被用于标识各种状态,一些位被用于标识当前处于什么工作模式. 2:这个状态寄存器的32位可以分为四个8位的域. 其中cpsr_c代表的是cpsr寄存器的低8位,也就是控制位 有些程序里这样写msr cpsr_c, #0xd2   

MSR和MRS指令操作CPSR寄存器

1.MSR和MRS指令介绍 MRS 指令:  对状态寄存器CPSR和SPSR进行读操作.通过读CPSR可以获得当前处理器的工作状态.读SPSR寄存器可以获得进入异常前的处理器状态(因为只有异常模式下有SPSR寄存器). MSR指令:    对状态寄存器CPSR和SPSR进行写操作.与MRS配合使用,可以实现对CPSR或SPSR寄存器的读-修改-写操作,可以切换处理器模式.或者允许/禁止IRQ/FIQ中断等. 2.CPSR寄存器介绍 如图所示,ARM每种工作模式除R0~R15共16个寄存器外,还有

CPSR & SPSR 程序状态寄存器的访问 笔记

CPSR & SPSR 一行短短的汇编触发的学习笔记~ ARM 微处理器支持程序状态寄存器访问指令,用于在程序状态寄存器和通用寄存器之间传递数据.程序状态寄存器(*PSR) 的访问指令包括一下两条: -------------------------------------------------------------------------------------------------------------------------------------------------- 关于M

寄存器总览

手册:ARM Architecture Reference Manual.pdf 章节:Programmers’ Model-->A2.3 Registers ARM处理器总共有37个寄存器: 1.31个通用寄存器 2.6个程序状态寄存器 --------------------------------------- 1.31个通用寄存器: R0-R14共15个寄存器,加上PC指针共16个寄存器. 注意有后缀的寄存器,例如:R13_<mode> R13_svc 表示SVC模式下面的R13

ARM处理器的寄存器,ARM与Thumb状态,7中运行模式

** ARM处理器的寄存器,ARM与Thumb状态,7中运行模式 分类: 嵌入式 ARM处理器工作模式一共有 7 种 : USR  模式    正常用户模式,程序正常执行模式 FIQ模式(Fast Interrupt Request)     处理快速中断,支持高速数据传送或通道处理 IRQ模式     处理普通中断 SVC模式(Supervisor)     操作系统保护模式,处理软件中断swi  reset ABT  中止(Abort mode){数据.指令}    处理存储器故障.实现虚拟

自己学驱动17——ARM工作模式和ARM9寄存器

1.ARM体系CPU的7种工作模式 (1)用户模式(usr):ARM处理器正常的程序执行状态. (2)快速中断模式(fiq):用于高速数据传输或通道处理. (3)中断模式(irq):用于通用的中断处理. (4)管理模式(svc):操作系统使用的保护模式. (5)数据访问终止模式(abt):当数据或指令预取终止时进入该模式,可用于虚拟存储及存储保护. (6)系统模式(sys):运行具有特权的操作系统任务. (7)未定义指令中止模式(und):当未定义的指令执行时进入该模式,可用于支持硬件协处理器的

【汇编指令】ARM指令集之寄存器及32位概述

1) ARM处理器有37+3个32位寄存器:其中有32个通用寄存器,只有一个PC指针寄存器,一般习惯用R15来指向正在取指的指令,而不是正在执行的指令.(这里涉及到arm处理器的流水线操作流程,下面在介绍),七个状态寄存器:但是只有一个CPSR寄存器(用来表示当前程序状态寄存器),6个SPSR寄存器(用来保存备份当前程序状态的异常数据). 处理器在工作时有8种不同的工作模式,对应的每一种处理器模式都有一组相应的寄存器组: 这里USER/SYS工作模式共用一个寄存器组,但是USER模式没有特权,而

【嵌入式开发】ARM 芯片简介 (ARM芯片类型 | ARM处理器工作模式 | ARM 寄存器 | ARM 寻址)

作者 : 韩曙亮 博客地址 : http://blog.csdn.net/shulianghan/article/details/42375701 相关资源下载 :  -- 三星 ARM Architecture Reference Manual 文档 : http://download.csdn.net/detail/han1202012/8324641 一. ARM 芯片类型 1. ARM 分类 (1) ARM 分类类型(芯片 | 核 | 指令架构) ARM 分类 : -- ARM 芯片类型

ARM的编程模式及寄存器

根据朱老师的课程及下面博客整理 http://blog.chinaunix.net/uid-20443992-id-5700979.html ARM 采用的是32位架构 ARM 约定: Byte : 8 bits Halfword :16 bits (2 byte) Word : 32 bits (4 byte) 大部分ARM core 提供: ARM 指令集(32-bit) Thumb 指令集(16-bit ) Thumb2指令集(16 & 32bit) ARM 有7个基本工作模式: User