ARM中有两条指令用于在状态寄存器和通用寄存器之间传送数据。
状态寄存器中有些位是当前没有使用的,但在ARM将来版本中有可能使用这些位,因此用户程序不要使用这些位。
程序不能通过直接修改CPSR中T的控制位直接将程序状态切换到Thumb状态,必须通过BX等指令完成程序状态的切换。
通常修改状态寄存器是通过“读取-修改-写回”的操作序列来实现。
状态寄存器访问指令包括以下两条。
(1)MRS 状态寄存器到通用寄存器的传送指令
MRS(条件) ' CPSR
MRS指令用于将状态寄存器的内容传送到通用寄存器中。
MRS指令主要用于以下3种场合。
·通常通过“读取-修改-写回“操作序列修改状态寄存器的内容。MRS指令用于将状态寄存器的内容读到通用寄存器中。
·当异常中断允许嵌套时,需要在进入异常中断之后、嵌套中断发生之前保存当前处理器模式对应的SPSR J8时需要先通过MRS指令读出SPSR的值,再用其他指令将SPSR保存起来。
·在进程切换时也需要保存当前状态寄存器值。
(2)MSR 通用寄存器到状态寄存器的传送指令
MSR指令用于将通用寄存器的内容或一个立即数传送到状态寄存器中。
MSR指令通常用于恢复状态寄存器的内容或者改变状态寄存器的内容。
当退出异常中断处理程序时,如果事先保存了状态寄存器的内容(如在嵌套的异常中断处理中),则通常通过MSR指令实现将保存的状态寄存器内容恢复到状态寄存器中。
当需要修改状态寄存器的内容时,通过“读取-修改-写回”指令序列完成。写回操作也是通过MSR指令完成的。
考虑到指令执行的效率,通常在MSR指令中指定指令将要修改的位域。
关键字:ARM 状态寄存器 访问指令
引用地址:
ARM状态寄存器访问指令
推荐阅读最新更新时间:2024-03-16 13:13
arm中的宏定义
语法格式如下: MACRO macroname{ $ parameter1, $ parameter, } 其他指令 MEND MACRO伪操作标识宏定义的开始,MEND标识宏定义的结束。用MACRO及MEND定义一段代码,称为宏定义体,这样在程序中就可以通过宏指令多次调用该代码段。 其中, $ label在宏指令被展开时,label会被替换成相应的符号,通常是一个标号。宏定义中的$label是一个可选参数,在一个符号前使用$表示程序被汇编时将使用相应的值来替代$后的符号。 macroname为所定义的宏的名称。 $para
[单片机]
ARM CP15协处理器说明
访问CP15寄存器指令的编码格式及语法说明如下: 31 28 27 24 23 21 20 19 16 15 12 11 8 7 5 4 3 0 cond 1 1 1 0 opcode_1 L cr n rd 1 1 1 1 opcode_2 1 crm 说明: :协处理器行为操作码,对于CP15来说,永远为0b000,否则结果未知。 :不能是r15/pc,否则,结果未知。 :作为目标寄存器的协处理器寄存器,编号为C0~C15。 :附加的目标寄存器或源操作数寄存器,如果不需要设置附加信息,将crm设置为c0,否则结果未知。 :提供附加信息比如寄存器的版本号或者访问类型,用于区分同一个
[单片机]
ARM不满足移动终端称霸 进军PC市场
移动终端设备的崛起,让“默默无闻”的ARM处理器迅速崛起,在市场上甚至与老牌芯片巨头英特尔一较高下。虽然二者的主要针对市场似乎并没有多少交集,但对于ARM来说,移动市场如今已经很难满足其胃口,在微软和英特尔之间横插一脚就已经证明其开始进军PC市场。特别是Wintel阵营的破解,Windows 8 RT版的出现都显现了其“野心”。
英特尔与微软的数年来牢不可破的阵营“Wintel”被ARM打破,让英特尔开始认识到ARM的野心。ARM之所以在处理器市场上大受欢迎的原有主要有两点,一是ARM功耗目前要远远低于后者,而这种低功耗的芯片在手机及移动终端甚至电脑上都非常受欢迎。二则是价格上的优势,从当前市场来看,ARM
[单片机]
uart串口发送---那些年我们一起玩mini2440(arm9)裸机
Uart工作原理: 数据通信方式为:并行通信与串行通信两种: §并行通信:利用多条数据线将数据的各位同时传送。 它的特点是:传输速度快,是用于短距离通信; §串行通信:利用一条数据线将数据一位位地顺序传送。 特点是通信线路简单,利用简单的线缆就实现通信,低成本,是用于远距离通信。 异步通信: ª异步通信:以一个字符为传输单位,通过两个字符间的时间间隔是不固定的,然而同一字符中的两个相邻位之间的时间间隔是固定的。 ª通信协议:是指通信双方约定的一些规则。在异步通讯时,对数据格式有如下约定:规定有空闲位、起始位、资料位、奇偶校验位、停止位。 起始位:先发一个逻辑“0”信号,表示传输字符的开始; 数据位:紧接在起始位之后。数据位
[单片机]
介绍ARM7内核的中断屏蔽方法
0 引言 CPU在执行程序的过程中,由于外部的某种原因,有必要尽快地中止当前程序的执行,而去执行相应的处理程序,待处理结束后再回来继续执行被中止了的原程序,这种情况称为“中断”。从事嵌入式开发的工程师对中断的概念都很熟悉,在x86系列CPU体系中,软件设计人员会调用enable()函数和disable()函数来允许或屏蔽中断。enable()和disable()是两个库函数,函数disable()的作用是屏蔽中断,它唯一允许执行的中断是NMI(不可屏蔽中断);函数enable()的作用与函数disable()相反,是将被屏蔽的中断打开,允许中断。这两个函数的原型都是在头文件DOS.H中定义的,DOS.H定义的都是一些DOS接口函数
[单片机]
基于ARM的医用数据采集系统的人机接口设计
引言 医用数据采集系统能够为医务人员及时有效的提供患者的第一手数据,有助于加强医院的现代化信息管理和提高工作效率。而在家庭保健方面,它能够满足人们在快节奏的工作生活中及时准确的获知自身及家人的健康状况。在设备的日常使用中,良好的人机接口设计,也将为设备使用人员节约大量的时间并提供极大的便捷。本文主要以LM3S3748为核心,并采用TFT液晶作为系统的显示设备,而用触摸屏和手柄控制器作为系统的控制设备,介绍了其人机接口的设计方法。
1 系统硬件设计
系统人机接口主要包括TFT液晶、触摸屏和手柄控制器,其结构框图如图1所示。其中TFT液晶亮度好,对比度高,层次感强,颜色鲜艳,因此,在不考虑耗电的情况下,TFT液晶是一
[嵌入式]
基于ARM与PID算法的开关电源控制系统
近年来,嵌入式技术发展极为迅速,出现了以单片机、专用嵌入式ARM为核心的高集成度处理器,并在通信、自动化、电力电子等领域得到了广泛应用。电源行业也开始采用内部集成资源丰富的嵌入式控制器来构成大型开关电源的控制系统。将SAMSUNC公司的嵌入式ARM处理器S3C44BOX芯片,应用到开关电源的控制系统的设计中,采用C语言和少量汇编语言,就可以实现一种以嵌入式ARM处理器为核心、具有智能PID控制器以及触摸屏、液晶显示器等功能的开关电源控制系统。 系统硬件架构 随着数字电路和半导体工艺日趋完善成熟,数字信号、数字电路在应用中所占比例越来越大,同时显现出越来越多的优点:便于计算机处理控制、减小信号的干扰、提高抗干扰能力、
[单片机]