历史上的今天
今天是:2024年09月23日(星期一)
2019年09月23日 | ARM汇编:MRS和MSR指令
2019-09-23 来源:eefocus
ARM中有两条指令用于在状态寄存器和通用寄存器之间传送数据。
一:下面先来说说状态寄存器
针对32位的ARM处理器,状态寄存器就是一个32位长的寄存器。每个位的含义如下图:

分成了4部分:
1,条件标志位
N(Negative), Z(Zero), C(Carry), V(Verflow)统称为条件标志位。ARM指令可以根据CPSR中的这些条件标志位来选择性的执行。
2,Q标志位
ARM v5的E系列处理器中,CPSR的bit[27]称为Q标志位。主要用于指示增强的DSP指令是否发生了溢出。
3,控制位
I, F, T以及M[4:0]统称为控制位。当异常中断发生时,这些位发生变化。在特权级的处理器模式下,软件可以修改这些控制位。
下表示控制位M[4:0]的含义:
4,保留位
用于将来ARM版本的扩展。
二:状态寄存器访问指令仅有两条:
MRS: 状态寄存器到通用寄存器的传送指令。
MSR: 通用寄存器到状态寄存器的传送指令。
三:MRS指令用法:

四:MSR指令用法:

其中:
f: 指示bits[31 : 24],又名条件标志位域 s: 指示bits[23 : 16],又名状态标志位域 x: 指示bits[15 : 8], 又名扩展位域 c: 指示bits[7 : 0],又名控制位 指令的操作伪代码:

下一篇:ARM汇编之MOV PC,LR
史海拾趣
|
在多电平系统中,直流电平转换是很常见的事情,这直接关系到一个系统设计的成败,TI在直流电平转换上的方案还是不错的,如SN74LVC4245(3.3V~5V),SN74AVC8T245(1.2V~3.6V)等,附件是TI的相关器件的详细介绍。 … 查看全部问答> |
|
我用lpc1343枚举了一个USB HID键盘设备,描述符我用的USB 键盘的,以前用过没问题的。 用end1 发送键盘数据,但是空闲时段一直发送0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00.但是按键数据又是正常的,就是表象没什么影响。不知道会不会对别的有影 ...… 查看全部问答> |
|
上海汉的信息技术股份有限公司 诚招嵌入式软件工程师 任职要求: 1.本科以上学历,计算机软件或相关专业,2年以上工作经验。 2.具有2年以上C++语言,linux或unix开发经验。 3.熟悉嵌入式开发。 4.懂日语者优先。 有意者请将简历发 ...… 查看全部问答> |
|
单片机与PC机的串口通信时,刚开始的时候传的数据是正确的,工作一段时间,传的数据就出现错误,当向PC机传固定的一个数据时,还出现时而正确,时而错误的情形,不知道这是为什么。… 查看全部问答> |
|
Building configuration: gas - Release Error[e16]: Segment DATA16_Z (size: 0xb9 align: 0x1) is too long for segment definition. At least 0x38 more bytes needed. The pro××em occurred while processing the segment placement comma ...… 查看全部问答> |
|
哪位大侠写过msp430f149控制DHT11温室读传感器的串口显示程序,我调了好久总是不能显示数据 ?不知道什么原因?高手帮忙啊,不胜感激之至!! 串口程序; #include \"usart.h\"struct DHT_data{ unsigned char DH_H; ...… 查看全部问答> |
|
ucos ii 的中断处理过程是这样的(直接上代码): { OSIntEnter(); //Call ISR... OSIntExit (); return; } OSIntExit () { #if OS_CRITICAL_METHOD == 3&n ...… 查看全部问答> |




