历史上的今天
返回首页

历史上的今天

今天是:2024年09月29日(星期日)

正在发生

2021年09月29日 | ARM状态寄存器CPSR SPSR

2021-09-29 来源:eefocus

订阅专栏

ARM的状态寄存器格式如上


位[31:24]为条件标志位域,用f 表示;

位[23:16]为状态位域,用s 表示;

位[15:8]为扩展位域,用x 表示;

位[7:0]为控制位域,用c 表示;

显然,常用的只有条件标志位域f和控制位域c。


如果需要操作状态寄存器,比如切换处理器模式,就需要修改控制位域中的模式位。

MRS: 程序状态寄存器到通用寄存器的数据传送指令

MSR: 通用寄存器到程序状态寄存器的数据传送指令 


附:

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以及更高版本)


***条件标志位***

N——本位设置成当前指令运算结果的bit[31]的值。当两个表示的有符号整数运算时,n=1表示运算结果为负数,n=0表示结果为正书或零。


Z——z=1表示运算的结果为零;z=0表示运算的结果不为零。对于CMP指令,Z=1表示进行比较的两个数大小相等。


C——下面分四种情况讨论C的设置方法:

在加法指令中(包括比较指令CMP),当结果产生了进位,则C=1,表示无符号运算发生上溢出;其他情况C=0。

在减法指令中(包括减法指令CMP),当运算中发生错位,则C=0,表示无符号运算数发生下溢出;其他情况下C=1。

对于包含移位操作的非加减运算指令,C中包含最后一次溢出的的位的数值。对于其他非加减运算指令,C位的值通常不受影响。


V——对于加减运算指令,当操作数和运算结果为二进制的补码表示的带符号数时,V=1表示符号为溢出;通常其他指令不影响V位。 

推荐阅读

史海拾趣

Ark-Les Connectors公司的发展小趣事

Ark-Les Connectors公司的成功离不开一支高素质的团队。公司注重人才培养和团队建设,通过提供完善的培训体系和晋升机制,吸引和留住了一批优秀的研发、生产、销售和管理人才。这些人才为公司的发展提供了源源不断的动力和创新力。同时,公司还倡导团队合作精神,鼓励员工之间的沟通与协作,共同为公司的发展贡献力量。这种良好的团队氛围使得Ark-Les能够在面对市场挑战时保持凝聚力和战斗力,实现持续稳健的发展。

这些故事只是基于电子行业一般发展规律的虚构情景,旨在展示一个公司可能的发展路径和策略。实际的电子行业发展过程中,公司的发展会受到众多因素的影响,包括市场环境、技术变革、政策调整等。因此,读者在理解这些故事时,应结合实际情况进行思考和判断。

Cornell Dubilier公司的发展小趣事

面对日益激烈的市场竞争和不断变化的客户需求,Cornell Dubilier公司积极引进智能化生产设备和解决方案。例如,公司部署了Rethink Robotics的智能协作机器人,显著提高了生产效率和质量。通过与机器人技术的结合,Cornell Dubilier公司在电力电容制造领域取得了显著的成绩,实现了生产过程的自动化和智能化。

AB Connectors Ltd公司的发展小趣事

随着公司实力的不断增强,AB Connectors Ltd开始将目光投向国际市场。公司积极参加国际电子展会和商务洽谈活动,与海外客户建立了广泛的合作关系。同时,公司还通过设立海外办事处和建立分销网络等方式,进一步拓展国际市场。这些举措不仅提高了公司的知名度和影响力,还为公司的快速发展提供了有力支持。

Global Mixed-Mode Technology Inc公司的发展小趣事
三相缺相报警灯电路可以与其他电气保护设备配合使用,共同保障电气系统的安全稳定运行。例如,当三相缺相报警灯电路检测到缺相情况时,可以发出警报信号给操作人员或监控系统;同时,断路器或过载保护器等设备也可以根据设定的保护参数来切断故障电路或降低负载功率等措施来防止设备损坏或生产事故的发生。这些设备之间通过电气信号或控制逻辑相互关联和配合工作。
Elpakco Inc公司的发展小趣事

Elpakco Inc公司始终将产品质量视为企业的生命线。公司建立了严格的质量控制体系,从原材料采购到生产流程,再到产品出厂检测,每一个环节都严格把关。正是这种对品质的坚持,让Elpakco Inc的产品在市场上赢得了良好的口碑,越来越多的客户开始选择信赖Elpakco Inc的品牌。

Califia Lighting公司的发展小趣事

Califia Lighting深知品质是企业生存和发展的关键。因此,公司建立了严格的质量管理体系,从原材料采购到产品生产、检验、包装等各个环节都进行严格把关。同时,公司还注重客户服务和售后支持,及时解决客户在使用过程中遇到的问题,赢得了客户的信赖和好评。

问答坊 | AI 解惑

步进程序的疑问

#include #include \"math.h\" unsigned char z,z1;//取步序 unsigned int lj1=0;//a电机累加次数 unsigned int lj2=0; //b电机累加次数 unsigned char pda,pdb;//判断正反转 unsigned char x1=0,x2=0;  //x坐标 unsigned char y ...…

查看全部问答>

枕头里的私人音乐空间

这是一个内置音乐播放器、扬声器的枕头,手提箱式的设计方便携带,打开之后还可以展开一张很大的毯子,就算是躺在操场的草坪上,也不用担心草尖会扎到脖颈。内置的播放器可以识别U盘或存储卡,随时随地可以营造一个有轻音乐伴随的休憩空间。 …

查看全部问答>

单片机能做什么?

今天和同学聊天,谈起单片机,他觉得单片机做不了什么东西,更适合小工厂。而更广泛的应该用PLC,大家觉得单片机会被淘汰吗?用单片机又能做些什么呢?欢迎大家发表自己的意见啊。(我同学研究生毕业直接做了老师,接触实际的很少。)…

查看全部问答>

100分求一个用于C#上能带图片的按钮控件.

我想用C#开发WinCE的程序,找了半天没有找到怎么在按钮上放图片,听说是没有带这样的控件,  都是第三方的才行. 哪位有发给小弟一个. …

查看全部问答>

2440头文件的奇怪问题

在s2440.h有这么一段: #define ADC_BASE      0xB1800000 // 0x58000000 typedef struct {         unsigned int         rADCCON;         ...…

查看全部问答>

菜鸟求问:如果调试2440下面的SPI接口

买的是tq2440,有四个GPIO引脚支持SPI协议。 但是不知道调试的话该从何做起。 刚开始学习,网上溜达了好多天 看了driver下的驱动程序以及DOcument下面的test程序 但是具体是怎么个操作过程,希望有人能指点一下 譬如说是不是先要用导线将MISO ...…

查看全部问答>

task延时问题

我想使用task来实现毫秒级的延时,想延时了就调用task延时。 但是遇到要使用时钟的问题,不知如何解决,哪位大虾能伸出援手????…

查看全部问答>

转贴:LM3S单片机UART的FIFO理解 和μDMA方式的UART

最近在看UART,看到这篇理解的不错,特转发过来,和大家一起学习学习。   Stellaris单片机有两个16字FIFO,分别用于缓存收和发的数据。FIFO触发中断的深度可设置,设置为8个数据(1/8)触发发送中断时,就是当发送FIFO中数据少于8时触发发送 ...…

查看全部问答>

请教STM8S103读取内部EEPROM为什么不行?

void EEP_INIT(void) {     FLASH_CR1 = 0x00;     FLASH_CR2 = 0x00;     FLASH_NCR2 = 0xff;     FLASH_DUKR = MASS_KEY1;     FLASH_DUKR = MASS_KEY2;     while(!FL ...…

查看全部问答>

关于批量生产时,向芯片中烧写程序的问题!

现在产品已基本上开发出来,即将批量生产,但是却存在一个问题,在以前开发阶段,我总是通过在线 编程的方式将程序写入芯片,现在要批量生产了,总不能还通过这种方式吧,能不能向51单片机一样将程序编译成HEX或二进制文件,通过编程器,先加密,然后写到片子 ...…

查看全部问答>