arm寄存器解析

发布者:RadiantDusk最新更新时间:2020-01-13 来源: eefocus关键字:arm  寄存器  工作模式 手机看文章 扫描二维码
随时随地手机看文章

寒假闲来无事准备将自己的走过的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  寄存器  工作模式 引用地址:arm寄存器解析

上一篇:ARM汇编与C混合编程
下一篇:ARM系列 STM32F103RCT6 开发

推荐阅读最新更新时间:2024-11-05 15:48

ARM推Android开发工具,旨在降低电池能耗
    据Engadget报道,因Android设备多半采用ARM芯片,为解决电池耗电问题,ARM亲历亲为,推出Android开发工具包。 随着Development Studio 5 Community Edition的发布,该公司已扩大其开发套件的范围,不只针对Linux,也针对谷歌基于Linux的移动操作系统Android。DS - 5不仅优化应用程序的性能,也对电池效率做了很大改进;使用ARM芯片运行Android,尽量提升电池使用时间。 ARM声称DS-5生成的代码比Java快四倍,且集成了标准的Android SDK以及Eclipse IDE。
[工业控制]
GNU ARM汇编--(三)ARM处理器的基本原则
这一篇的知识来源全部来自《ARM System Developer's Guide》 从编程人员的视角来看,arm核是由数据总线连接的功能单元组成,如下图所示: 数据通过数据总线流向处理器核心,这里的数据可以是将要执行的指令,也可以是数据项.上面的图是Von Neumann体系的arm核,数据项和指令共用同一总线.而h哈佛结构体系的arm核就会用两个不同的总线. 就像所有的RISC处理器,arm采用load-store体系结构.也就是说它含有两条不同的指令类型来出入处理器.loar指令将数据从内存拷贝到寄存器,store指令是将数据从寄存器拷贝到内存.没有直接操作内存中数据的数
[单片机]
GNU <font color='red'>ARM</font>汇编--(三)<font color='red'>ARM</font>处理器的基本原则
嵌入式系统设计师必备的在线ARM仿真器知识
  本文提供了一些关于在线 ARM 仿真器的信息,以及给作为嵌入式系统设计师的你带来的好处。根据你的需要,你将在产品开发中对开发工具作出更恰当的选择。    一、嵌入式产品的开发周期   典型的嵌入式微控制器开发项目的第一个阶段是用C编译器从源程序生成目标代码,生成的目标代码将包括物理地址和一些调试信息。目前代码可以用软件模拟器、目标Monitor或在线仿真器来执行和调试。软件模拟器是在PC机或工作站平台上,以其CPU(如x86)及其系统资源来模拟目标CPU(如P51XA),并执行用户的目标代码;而目标Monitor则是将生成的目标代码下载到用户目标板的程序存储器中,并在下载的代码中增加一个Monitor任务软件,用来监视
[嵌入式]
软银收购ARM一年员工总数暴涨25%
   软银 集团8月7日公布财报时指出,截至2017年6月30日为止 ARM 技术人员人数达4,269人、较去年同期增加25%。  软银 是在去年宣布以240亿英镑收购 ARM 。下面就随嵌入式小编一起来了解一下相关内容吧。    ARM 曾在今年3月表示,旗下最新开发的DynamIQ技术将可扩展人工智能(AI)的可能性。 ARM说,相较于目前的Cortex-A73系统,未来3-5年采用DynamIQ的Cortex-A其AI效能将可增加50倍。   根据 软银 在8月7日发布的投影片数据,锁定2018年高端智能手机的DynamIQ ARM Cortex-A75效能将增加50%、ARM Cortex-A55节能效率将增加2.5倍,
[嵌入式]
qemu+chroot构建arm aarch64虚拟机
在X86环境下构建出arm虚拟机可以模拟arm环境进行开发、在arm linux的文件系统中安装相应的库文件,编译arm版本等。 简单介绍下在X86环境下构建ARM虚拟机的步骤。 1、x86环境安装qemu-user-static sudo apt-get install qemu-user-static 2、准备arm linux根文件系统 arm linux根文件系统可以直接下载干净的版本 或者从运行的arm单板上进行备份获取。 arm单板上备份根文件系统命令: sudo tar -cvpzf rootfs.tgz --exclude=/proc --exclude=/mnt --exclude=/sy
[单片机]
ARM历程四-LCD
离上次真正写历程已经有10天的时间了。国庆嘛,自己给自己放了几天假——耍耍游戏下下棋什么的。 其实这次写触屏的驱动和对ARM中中断的过程的了解也花了不少时间和脑力。 我就简单分享一下CPU执行某个中断的条件吧,也是我自己的理解,如果有错还请大家指正(以IRQ中断为例吧):   在程序状态寄存器中(CPSR寄存器)i 位为IRQ中断禁止位,若这一位置1那么所有的IRQ中断都不会被CPU响应,如果这一位被清0,CPU也不一定会响应某一个或某些中断(就像是一个总开关)。所以,要想让CPU执行IRQ中断,CPRS中的i位必须要清0!   在2440的CPU中还有两个中断屏蔽寄存器:INTMSK(中断屏蔽寄存器)和IN
[单片机]
基于ARM的I2C设备控制方法的研究与实现
1 引 言   I2C总线是由Philips公司开发的2线式 串行总线 ,由于其简单、高效、互联成本小而被广泛地用于微控制器与外围设备的连接。AT91SAM7X256是 Atmel 公司于2005年推出的基于 ARM 7的工业级芯片,他以体积小、功耗低、连接方式广泛、处理资源丰富、控制灵活等特点受到嵌入式领域开发人员的重视。本文介绍AT91SAM7X256的I2C控制器TWI接口(two-wired interface)的使用方法,并以I2C设备E2PROM和日历时钟芯片为例,实现AT91SAM7X256对时间数据的读取与存储。同时,为了验证时间数据的读取与存储是否正确,使用AT91SAM7X256的在线仿真器J-LINK将E
[单片机]
点亮第一个LED灯
1.代码: #include reg52.h // reg51.h 包含52单片机寄存器库 sbit led = P1^0; //只有地址可以被8整除的 才可以用sbit单端定义某一位 // p0-p3口都可以被sbit单单独定义 void main (void) { led = 1; //初始化P1^0,使之输出状态 while(1) //大循环 { led = 0;//将P1^0输出低电平 } } 2.电路图: 3.效果:
[单片机]
点亮第一个LED灯
小广播
设计资源 培训 开发板 精华推荐

最新单片机文章
何立民专栏 单片机及嵌入式宝典

北京航空航天大学教授,20余年来致力于单片机与嵌入式系统推广工作。

换一换 更多 相关热搜器件
随便看看

 
EEWorld订阅号

 
EEWorld服务号

 
汽车开发圈

电子工程世界版权所有 京B2-20211791 京ICP备10001474号-1 电信业务审批[2006]字第258号函 京公网安备 11010802033920号 Copyright © 2005-2024 EEWORLD.com.cn, Inc. All rights reserved