ARM的工作模式以及寄存器组织(回顾复习)

一、ARM处理器主要分为A系列处理器以及M系列处理器,不同的处理器工作模式也不相同,现在就A系类以及M系列的工作模式来做一下总结。

1、关于cortex-A系列工作模式

ARM的工作模式以及寄存器组织(回顾复习)_第1张图片

2.关于cortex-M系列工作模式

 总结:对于不同的处理器,都是在特定的模式下执行特定的代码,完成特定的功能。

二、ARM的寄存器组织(ARM-v7)

1、在了解寄存器的组织之前,先来了解一下ARM处理器的大致框图

 ARM的工作模式以及寄存器组织(回顾复习)_第2张图片

icache:高速指令缓存

dcache:高速数据缓存

控制器:负责控制程序的运行

运算器:处理数据运算以及将运行的结果写回寄存器中

寄存器:存储数据(注:空间有限,只有100多字节,而且不能取地址操作(后面介绍为什么不能取地址))

对于他们读写数据的快慢来说,内核中的寄存器是速度最快的,其次就是缓存,然后就是内存,最后是硬盘

2、ARM-v7寄存器组织

ARM的工作模式以及寄存器组织(回顾复习)_第3张图片

1、寄存器是没有地址的,只能通过编号进行访问,对于ARM-v7架构来说,每个寄存器都是32位的(一条汇编指令首先被编译生成32位的机器码,这个机器码中需要包含指令中的信息,如果在加上地址信息就存不上了(采用压缩可以吗?答案:不可以,如果采用压缩的方式,岂不是更加麻烦了))。

2、banked(灰底)是属于对应模式私有的寄存器,其他的都属于公有的寄存器,如果对应的模式下,有私有的寄存器,那么它就不能访问公有的寄存器(比如说在FIQ模式下,不能访问公有r8寄存器,只能访问自己私有的r8_fiq寄存器),浅色字体代表只能访问到用户模式下的寄存器(比如说在IRQ模式下只能访问用户模式下的r0寄存器)

3、用户模式和系统模式公用一套寄存器组织

4、特殊寄存器介绍:

        sp寄存器(r13寄存器):栈指针寄存器--->用来压栈保存现场的

        lr寄存器(r14寄存器):链接寄存器--->用来保存返回地址的

        pc寄存器(r15寄存器):程序计数寄存器--->存放当前指令的地址(完成取指操作,pc的值              会自动加4指向下一条指令)

        cpsr寄存器:当前程序状态寄存器--->保存当前程序的运行状态

        (1)N[31]位 ----> 指令的运算结果为负数,N位被自动置1, 否则清0.

        (2)Z[30]位 ----> 指令的运算结果为零,Z位被自动置1,否则清0.

        (3)C[29]位 ---->加法:进行加法运算时,如果产生进位,C位被自动置1,否则清0.

​                     进位:低32位向高32位进位(溢出的标志位)。

​                     减法: 进行减法运算时,如果产生借位,C位被自动清0,否则置1.

​                     借位:低32位向高32位借位。

        (4)V[28]位 ----> 如果符号位发生变化,V位被自动置1,否则清0.

        (5)I[7]位 ----> IRQ的屏蔽位;I = 1表示屏蔽IRQ类型的中断;I = 0表示不屏蔽IRQ类型的中断

        (6)F[6]位 ----> FIQ的屏蔽位;F = 1表示屏蔽FIQ类型的中断;F = 0表示不屏蔽FIQ类型的中断

        (7)T[5]位 ----> 状态位;T = 0: ARM状态,执行的是ARM指令集,ARM指令的宽度是4个字节。

​                          T = 1:Thumb状态,执行的是Thumb指令集,Thumb指令的宽度是2个字节。

        (8)M[4:0]位 ---> 模式位

​                             10000 User mode;

​                             10001 FIQ mode;

​                             10011 SVC mode;

​                             10111 Abort mode;

​                             11011 Undfined mode;

                            ​ 11111 System mode;

​                             10110 Monitor mode;

​                             10010 IRQ mode;

​                             注:其他的值保留。

        spsr寄存器:保存程序状态寄存器--->主要对cpsr寄存器进行备份

三、ARM的寄存器组织(ARM-v8)

ARM的工作模式以及寄存器组织(回顾复习)_第4张图片

 ARM的工作模式以及寄存器组织(回顾复习)_第5张图片

 

你可能感兴趣的:(arm,arm,嵌入式硬件)