首页 > 电路 > 集成电路 > arm寄存器多少位的,ARM中有多少个寄存器

arm寄存器多少位的,ARM中有多少个寄存器

来源:整理 时间:2023-09-23 00:55:31 编辑:亚灵电子网 手机版

本文目录一览

1,ARM中有多少个寄存器

31个通用的寄存器 包括PC 6个状态寄存器 32位只使用了12位

ARM中有多少个寄存器

2,arm处理器总共有多少个通用寄存器

31个为通用寄存器。ARM微处理器共有37个32位寄存器,其中31个为通用寄存器(R13和R13_svc不是同一个寄存器),6个为状态寄存器。但是这些寄存器不能被同时访问,具体哪些寄存器是可以访问的,取决ARM处理器的工作状态及具体的运行模式。

arm处理器总共有多少个通用寄存器

3,ARM单片机寄存器地址为什么相差4

51是8位机,ARM大多数是32位机,所以51的寄存器大部分是8位的,而ARM大都是32位的,这一般而言是根据数据总线的位数来划分的。

ARM单片机寄存器地址为什么相差4

4,ARM不是有37个寄存器吗怎么我只知道有16个R0R15

额。你随便百度一下就知道。。。。ARM处理器共有37个寄存器。其中包括:**31个通用寄存器,包括程序计数器(PC)在内。这些寄存器都是32位寄存器。**6个状态寄存器。这些寄存器都是32位寄存器。(1)未分组寄存器:R0-R7,共8个;(2)分组寄存器R8-R14,其中FIQ模式下有单独的一组R8-R12共5个,另外6种模式共用一组R8-R12,共5个,USR和SYS模式共用一组R13-R14,共2个,另外5种模式下各有独自的一组R13-R14,共10个;(3)程序计数器PC即R15寄存器,共1个;(4)状态寄存器CPSR,和5个备份状态寄存器SPSR,共6个;ARM总计37个寄存器。

5,arm7内部有多少个寄存器

ARM9处理器的内部总共有37个32位的寄存器,其中31个用作通用寄存器,6个用作状态寄存器;ARM7你要查找一下手册
内核有37个,但是同一时刻只能用16个,具体作用随便找本arm的书都有,r13 堆栈,r14 返回指针,r15 程序计数器,其他通用。其他内核外的寄存器是外部硬件决定的,要看芯片手册。

6,ARM寄存器详解

ARM A系列寄存器的情况 这是寄存器的总表,下面是CPU的各个模式,上面的纵轴就是寄存器组。 CPU在运行的时候为什么会有寄存器? 想象CPU是一个圈一直在运转,然后寄存器里面有大量的指令,这些指令不知道从哪里来的,但是一般情况下我们的程序在计算我们的程序,我们的程序一般是放在内存里面的,它从内存里面把这些程序读进来之后,在运行,但是如果现在这个程序在运行时异常,那么就要进行CPU状态的切换,除了状态切换之外,当前的一些数据结果需要进行一个保存,但是如果要把这个结果存到内存去,内存并不稳定并且很慢,所以就要想办法能不能找到一个临时空间保存一下,这就是为什么会诞生寄存器。 设置寄存器的原因就是为了更好的去控制和达到效率,ARM体系为了很好的去控制CPU,设定了哪些寄存器? User纵轴上的十三个寄存器称为通用寄存器,R13是一个比较特殊的寄存器,也叫做SP,就是占指针的寄存器,就是指向某一些占空间,R14是LR,就是连接寄存器,它肯定是去连接某一个地方。R15是PC,这是程序计数器,这是CPU在每一个空间切换的时候的计数器,最下面那个也就是APSR或者CPSR,PSR就是程序状态寄存器,A代表应用程序状态寄存器,C代表当前程序状态寄存器。 在往下就类似于R17,只不过它叫做SPSR,S就是以保存程序代表寄存器或者我们也可以称为存储状态寄存器,通过这些我们大概把寄存器了解了。 那么这上面分为通用的,那么下面就是特殊寄存器,从横向来看,我们可以看到在USR模式下面,这样寄存器挺全的,但是USR下面没有SPSR,就是没有存储状态的寄存器,然后FIQ快速中断模式下面面是共享R0到R7,意思就是这些模式下的R0到R7它们与USR模式下的R0到R7是共享的,这样如果存储一些数据在R0到R9下面,突然发生异常,切换到另一个模式,那么我们就应该要想办法把这个存取一下,因为另一个模式可能也要往这里面写东西,那么写之前就应该把USR模式下的先保留一下,到时候退出解决后在还原回来,所以我们要一个R0到R7这块寄存器是共享的,同样FIQ后面几个模式的R8到R12也是和USR共享的,只有FIQ是自己独有的,同样的我们在看到PC计数器也是共享的,还有SPSR也是共享的,但是SPSR每个状态都有自己独有的。 APSR应用程序的一个寄存器,它只在USR下面叫做APSR,其他模式下面叫做当前程序存储寄存器。 总结 1,R0-R12是通用寄存器,放通用数据然后每个寄存器都是32位的。 2,各个模式的R0到R12与USR模式是共享的(除了FIQ,R8-R12),PC,CPSR是共享的。 3,USR模式没有SPSR SP:栈指针,存储栈地址,比如有个CPU,然后还有个外部资源也就是内存,我们想象CPU在程序跳转的时候在运行是最核心的ALU单元,然后外部资源存储着程序A和程序B还有程序C,实际上在CPU在读程序A的时候,可能下面的时候会跳到程序B单元,这个时候它可能不知道地址在哪里,那么这个时候就存储在SP这个寄存器里面,SP这个寄存器表示后面将要执行的程序。 LR:链接寄存器,存储于程序返回地址。这个链接寄存器主要用在函数A和函数B,A正在运行时,突然要调用B,那么就引了一个分支了,然后这个函数B去运行,运行完之后还是要返回到最初然后继续往下走,那么这个时候返回值应该要有个记录,这就是链接寄存器。 PC:程序计数器 APSR/CPSR:应用程序状态寄存器/当前程序状态寄存器。 SPSR:已存储程序状态寄存器。想象一个程序正在运行,这个程序当前状态正常,这个状态就先把它保存到CPS里面,这个时候突然发生异常,那么当前状态就应该变成异常,就把这个状态存到CPSR上面,但是异常处理完了之后,我们希望还是能够回到之前那个状态,但是这个时候当时的状态已经被清理掉了,这个时候我们就可以用SPSR把原来那个状态保存,这样当状态在发生改变的时候,要还原就可以去SPSR里面读取之前那个状态,这就是它们之间的关系,就类似有一个A的变量,给A这个变量赋了一个值,然后还赋了一个新值,但是又希望原来那个值要保存,所以有个变量B,然后把变量A赋给变量B。原文链接: http://www.maiziedu.com/wiki/arm/register/

7,arm9处理器的字是多少位的存储空间的大小是多少

地址线是20位,则可直接访问的地址空间的大小是2的20次方字节,即1M字节8086的内存是按字节编址的。 这个问题与字长无关。
在机器内部用20位无符号二进制数来表示存储单元地址。用十六进制表示的地址范围为:00000h~fffffh。8086微处理器是一个16位结构,用户可用的寄存器均为16位。显然,用一个寄存器是无法形成寻址1mb存储器空间所需的地址码的

8,arm处理器总共有多少寄存器 其中哪个用作PC 哪个用做LR

你看到的是不是正在执行指令的地址呵?(pc的值是指令1的地址) 我的理解是,流水线这个问题是cpu架构的特点,为了使流水线正常的走下去,物理寄存器里真实的值(pc值)应该指向正在取址的指令
ARM的寄存器,全部共有31个32位元的寄存器。但ARM核心同时最多只可以有18个同时执行的寄存器:包含了16个资料寄存器和2个处理器状态寄存器,16个资料寄存器中包含了3个专用寄存器,R13、R14和R15。R13 为 Stack PointerR14 为 LRR15 为PC

9,arm处理器总共有多少个通用寄存器

31个为通用寄存器。ARM微处理器共有37个32位寄存器,其中31个为通用寄存器(R13和R13_svc不是同一个寄存器),6个为状态寄存器。但是这些寄存器不能被同时访问,具体哪些寄存器是可以访问的,取决ARM处理器的工作状态及具体的运行模式。
arm处理器总共有31个通用寄存器。arm微处理器共有37个32位寄存器,其中31个为通用寄存器(r13和r13_svc不是同一个寄存器),6个为状态寄存器。但是这些寄存器不能被同时访问,具体哪些寄存器是可以访问的,取决arm处理器的工作状态及具体的运行模式。但在任何时候,通用寄存器r14~r0、程序计数器pc、一个状态寄存器都是可访问的。

10,arm中的寄存器

因为ARM有7种处理器模式,(用户usr、中断irq、快中断fiq、管理svc、中止abt、未定义und、系统sys),37个寄存器中是这样分的: R0~R7是通用的,就是其中模式都可以用; R8~R12分两组,就是有10个了,快中断模式用一组(R8_fiq~R12_fiq),其余的六种模式用一组(R8~R12); R13、R14分六组,就是有12个,其中用户模式和系统模式共用一组(R13~R14),其余的5种模式各有一组【R13_irq~R14_irq】【R13_fiq~R14_fiq】【R13_svc~R14_svc】【R13_abt~R14_abt】【R13_und~R14_und】; R15为七种模式共用; 程序状态寄存器:CPSR是共用的,SPSR也是分了组的,但是只有5个,因为在用户模式和系统模式下不需要SPSR。 所以ARM状态下每种模式是18个可用(用户模式和系统模式是17个)。 Thumb状态类推。因为Thumb状态下没有用到R8-R12寄存器。 我知道的就这些了。应该没错的。可以理解吗?嘿嘿
文章TAG:arm寄存器多少位的arm寄存寄存器

最近更新