历史上的今天
今天是:2025年01月13日(星期一)
2020年01月13日 | arm寄存器解析
2020-01-13 来源:eefocus
寒假闲来无事准备将自己的走过的arm之路总结一下,今天就先从arm的寄存器说起吧,欢迎各位拍砖。
要介绍arm寄存器之前我们要先了解一下arm处理器的工作模式:
http://blog.csdn.net/abclixu123/article/details/7471822,博主讲的不错),对于ARM指令集而言,PC总是指向当前指令的下两条指令的地址,即PC的值为当前指令的地址值加8个字节程序状态寄存器。
4.CPSR
在官方文档中我们可以找到

下面介绍其中几个比较重要的位,其他位,大家可以参考官方手册:
N: 当两个表示的有符号整数运算时,1表示运算结果为负数,0表示结果为正或零。
Z:1表示运算的结果为零,0表示运算的结果不为零。对于CMP指令,1表示进行比较的两个数大小相等。
C:下面分四种情况讨论C的设置方法:
a)加法运算(包括比较指令CMN):当运算产生了进位时(无符号数溢出),C=1,否则C=0。
b)减法运算(包括比较指令CMP):当运算时产生了借位(无符号数溢出),C=0,否则C=1。
c)对于包含移位操作的非加/减运算指令,C为移出值的最后一位。
d)对于其他的非加/减运算指令,C的值通常不改变。
V:下面分两种情况讨论V的设置方法
a)对于加/减法运算指令,当操作数和运算结果为二进制的补码表示的带符号数时,V=1表示符号位溢出。
b)对于其他的非加/减运算指令,C的值通常不改变。
I:1 表示禁止外部(硬件)中断(IRQ)
F:1 表示禁止快速中断(FIQ)
T:1表示为thumb状态0为arm状态
M[4:0]:用来设置处理器的工作模式具体数据见本文开始的介绍。
5.SPSR
SPSR 除usr、sys外,对应用于异常保护的CPSR的备份,异常时,保存CPSR值,异常退出时,将该值恢复到CPSR,以保证程序的正常运行,每一中异常运行模式(除usr和sys)有各自的物理寄存器。
以上是自己的arm寄存器的简单理解,希望各位提出宝贵意见,并且在这个寒假从今天开始没有意外的话我的博客会一天一更,努力学习,欢迎大家监督。
上一篇:ARM汇编与C混合编程
史海拾趣
|
用定时器1做的简单输出,友善micro2440的板子 请帮我分析下,搞了好长时间,还是出不来 流驱动:#include \"options.h\" #include #include #include #include #include #include #include #include #include \"time.h\" ...… 查看全部问答> |
|
我在2440的开发板上使用SD卡用作U盘,在我的电脑上可以看到 ,也可以读写文件,但经常写一部分就出错,比如同时写200多个文件,写了几十个或100多个文件时(已经写进去的文件是好的,可以用读卡器读到),就出现错误。 ...… 查看全部问答> |
|
岗位描述: 1、 嵌入式软件设计与开发。 2、 根据项目需要进行软件技术支持。 3、 嵌入式项目软件开发过程控制 任职要求: 1、 熟悉Keil\\IAR开发环境,熟悉C/C++语言 2、 ...… 查看全部问答> |
|
plc车库管理设计梯形图 控制要求: 1.入库车辆前进时,经过1#传感器-->2#传感后,计数器A加1,后退时经过2#传感器-->1#传感器后,计数器B减1;(计数器B的初始值由计数器A送来)只经过一个传感器则计数器不动作 2.出库车辆前进时,经过2#传感器-->到1# ...… 查看全部问答> |
|
本帖最后由 dontium 于 2015-1-23 12:51 编辑 我这两天用面包板按照vca810芯片的datasheet中的figure2 电路搭建了一个压控放大,将8脚的50欧姆电阻去掉,并在8脚加了一个vpp=30mv,f=800hz的正弦波(函数发生器产生),并在1脚直接接地。但是在Vc= ...… 查看全部问答> |
|
library IEEE;use IEEE.STD_LOGIC_1164.ALL; entity period_1ms is port ( CLKIN : in std_logic; CLR : in std_logic; LOAD : in std_logic; DATA : in std_logic_vector( ...… 查看全部问答> |




