推荐阅读最新更新时间:2024-11-10 17:57
ARM汇编指令集之六——程序状态寄存器访问指令
1、 MRS指令 MRS指令的格式为: MRS{条件} 通用寄存器,程序状态寄存器(CPSR或SPSR) MRS指令用于将程序状态寄存器的内容传送到通用寄存器中。该指令一般用在以下两种情况: Ⅰ.当需要改变程序状态寄存器的内容时,可用MRS将程序状态寄存器的内容读入通用寄存器,修改后再写回程序状态寄存器。 Ⅱ.当在异常处理或进程切换时,需要保存程序状态寄存器的值,可先用该指令读出程序状态寄存器的值,然后保存。 指令示例: MRS R0,CPSR ;传送CPSR的内容到R0 MRS R0,SPSR ;传送SPSR的内容到R0 2、 MSR指令 MSR指令的格式为:
[单片机]
ARM9_S3C2440学习(二)ARM状态下的寄存器组织
ARM状态下的寄存器组织见图2.3。ARM有37个32位长的寄存器,包括31个通用寄存器、1个当前程序状态寄存器CPSR(current program status register)、5个备份的程序状态寄存器SPSR(saved program status register)。这37个寄存器并不都是同时可见的。在任意时刻,只有16个通用寄存器(R0~R15)和一个或者两个状态寄存器(CPSR和SPSR)对处理器来讲是可见的。 1. 通用寄存器 31个通用寄存器用R0~R15表示,可以分为三类: ●未分组寄存器R0~R7。 ●分组寄存器R8~R14。 ●程序计数器PC(R15)。 (1)未分组寄存器R0~R7 在所有的
[单片机]
ATmega48 控制和状态寄存器MCUCSR
AVR 控制和状态寄存器提供了有关引起AVR复位的复位源的信息。 · Bit 7..4 – Res: 保留位 ATmega48/88/168中的这些位都没有适用,读返回值始终为 0”。 · Bit 3 – WDRF: 看门狗复位标志 看门狗复位发生时置位。上电复位将使其清零,也可以通过写”0” 来清除。 · Bit 2 – BORF: 掉电检测复位标志 掉电检测复位发生时置位。上电复位将使其清零,也可以通过写”0” 来清除。 · Bit 1 – EXTRF: 外部复位标志 外部复位发生时置位。上电复位将使其清零,也可以通过写”0” 来清除。 · Bit 0 – PORF: 上电复位标志 上电复位发生时置位。只能通过写”0”
[单片机]
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
[单片机]
ARMv8-A架构基础之保存的进程状态寄存器
当发生异常时,处理器状态将以类似于ARMv7-A中的CPSR的方式存储在相关的已保存程序状态寄存器(SPSR)中。 SPSR在发生异常之前保存PSTATE字段的值,并在执行异常返回时用于恢复PSTATE字段的值。 下图显示了从AArch64中发生异常时的SPSR: exceptions_from_aarch32.png 下图显示了从AArch32中发生异常时的SPSR: exceptions_from_aarch64.png 各个位代表AArch64的以下值: N 负数结果(N标志)。 Z 零结果(Z)标志。 C 进位(C标志)。 V 溢出(V标志)。 SS Software Step。指示在发生异常时
[单片机]
ARMv8-A架构基础之更改执行状态(寄存器)
您只能通过更改异常级别来更改执行状态。 发生异常时可以将执行状态从AArch32更改为AArch64,并且从异常返回时可以将其从AArch64更改为AArch32。在进入异常级别时使用AArch64,在离开异常级别时使用AArch32: 如果使用AArch32执行,对任何较低的异常级别能访问的寄存器的高32位的访问,其值是未知的。 在AArch32执行过程中不可访问的寄存器,保留他们在AArch32执行前的状态。 在进入EL3异常时,如果EL2使用AArch32,则ELR_EL2的高32位的值是未知的。 当进入一个AArch32执行期间无法访问的异常级别时,该异常级别的AArch64堆栈指针(SP)和异常链接寄存器(ELR
[单片机]
ARM学习笔记6——程序状态寄存器访问指令
这两条指令结合,可用于对CPSR或SPSR进行读/写操作。 当需要保存或修改当前模式下CPSR或SPSR的内容时,首先必须将这些内容传递到通用寄存器中 1、MRS指令(Move to Register from Status Register) 1.1、作用 它将程序状态寄存器内容传输到通用寄存器 1.2、语法格式 MRS{ condition } Rd ,CPSR MRS{ condition } Rd ,SPSR 1.3、参数说明 Rd :确定指令的目标寄存器,如果R15被用作目标寄存器,指令的执行结果不可预知,因为每执行一个指令,PC都会改变。 1.4、使用场合
[单片机]
ATmega16 状态寄存器
状态寄存器包含了最近执行的算术指令的结果信息。这些信息可以用来改变程序流程以实现条件操作。如指令集所述,所有ALU 运算都将影响状态寄存器的内容。这样,在许多情况下就不需要专门的比较指令了,从而使系统运行更快速,代码效率更高。 在进入中断服务程序时状态寄存器不会自动保存,中断返回时也不会自动恢复。这些工作需要软件来处理。 AVR 中断寄存器 SREG 定义如下: ·Bit 7 – I: 全局中断使能 I 置位时使能全局中断。单独的中断使能由其他独立的控制寄存器控制。如果I 清零,则不 论单独中断标志置位与否,都不会产生中断。任意一个中断发生后I 清零,而执行RETI 指令后I 恢复置位以使能中断。I 也可以通过SEI 和CL
[单片机]