单片机
返回首页

ARM汇编指令ARM工作模式、寄存器

2016-06-24 来源:eefocus

1、ARM工作模式

从编程的角度来看,ARM微处理器的工作状态一般有两种,并可在两种工作状态之间进行切换:

△:第一种为ARM状态,此时处理器执行32位的的字对齐的ARM指令。

△:第二种为Thumb状态,此时处理器执行16位的、半字对齐的Thumb指令。

 

当ARM微处理器执行32位的ARM指令集时,工作在ARM状态;

当ARM微处理器执行16位的Thumb指令集时,工作在Thumb状态。

在程序的执行过程中,微处理器可以随时在两种工作状态之间切换,并且,处理器工作状态

的转变并不影响处理器的工作模式和相应寄存器中的内容。

 

1)存储器格式

ARM体系结构将存储器看作是从零地址开始的字节的线性组合。

从零字节到三字节地址放置地一个存储的字(32位)数据,从第四个字节到第七个字节

放置第二个存取器的子数据,依次排序。

作为32位的微处理器,ARM体系结构所支持的最大寻址空间为4GB。

 

ARM体系结构可以用两种方法存储字数据,称之为大端格式和小端格式。

△:大端格式:字数据的高字节存储在低地址中,而字数据的低字节则存放在高地址中。

△:小端格式:与大端格式正好相反。

2)工作模式

ARM微处理器支持7种工作模式,分别为:

a、用户模式(usr)   用于正常执行程序

b、快速中断模式(fiq)   用于高速数据传输

c、外部中断模式(irq)   用于通常的中断处理

d、管理模式(svc)   操作系统使用的保护模式

e、数据访问终止模式(abt)   当数据或者指令预取终止时进入该模式,可用于虚拟存储及存储保护。

f、系统模式(sys)   运行具有特权的操作系统任务

g、未定义指令中止模式(und)   当未定义的指令执行时进入该模式,可用于支持硬件

 

注意:

ARM微处理器的运行模式可以通过软件改变,也可以通过外部中断或者异常处理改变。

应用程序运行在用户模式下,当处理器运行在用户模式下时,某些被3保护的系统资源是不能被访问的。

 

除用户模式外,其余的6种模式称为非用户模式或者特权模式(Privileged Modes);

其中出去用户模式和系统模式以外以外的5种又称为异常模式(Exception Modes),常用语处理中断或者异常,以及要访问受保护的系统资源等情况。

2、ARM寄存器(基于ARM状态)

先贴张图片,一看就明白了:

ARM汇编指令ARM工作模式、寄存器


1)通用寄存器

△:不分组寄存器(The unbanked registers)

R0-R7

这意味着在所有处理模式下,访问的都是同一个物理寄存器。未分组寄存器没有被系统用于特别的用途,

任何可采用通用寄存器的场合都可以使用为分组寄存器。

△:分组寄存器:

R8-R14

对于R8-R12:FIQ模式分组寄存器R8-R12以及FIQ以外的分组寄存器R8-R12

对于R13-R14:寄存器R13通常用于堆栈指针SP

             寄存器R14用作子程序连接寄存器(Link Register-LR),也成为LR,指向函数的返回地址。

 

△:程序计数器

R15(PC)

寄存器R15也被用作程序计数器,也成为PC。其值等于当前正在执行的指令的地址+8。

因为在取址和执行之间多了一个译码的阶段(这个我也不是很懂,就是知道要加两个字)~~

△:状态寄存器

CPSR、SPSR_svc、SPSR_abt、SPSR_und、SPSR_irq、SPSR_fiq

3、ARM寄存器(基于Thumb状态)

还是直接上图,这个是跟ARM状态相比较的:

ARM汇编指令ARM工作模式、寄存器

4、CPSR/SPSR

一张图片搞定:

ARM汇编指令ARM工作模式、寄存器

 
进入单片机查看更多内容>>
相关视频
  • RISC-V嵌入式系统开发

  • SOC系统级芯片设计实验

  • 云龙51单片机实训视频教程(王云,字幕版)

  • 2022 Digi-Key KOL 系列: 你见过1GHz主频的单片机吗?Teensy 4.1开发板介绍

  • TI 新一代 C2000™ 微控制器:全方位助力伺服及马达驱动应用

  • MSP430电容触摸技术 - 防水Demo演示

精选电路图
  • PIC单片机控制的遥控防盗报警器电路

  • 红外线探测报警器

  • 短波AM发射器电路设计图

  • 使用ESP8266从NTP服务器获取时间并在OLED显示器上显示

  • 开关电源的基本组成及工作原理

  • 带有短路保护系统的5V直流稳压电源电路图

    相关电子头条文章