搜索
热搜: ROHM 模拟 车载
查看: 1564|回复: 2

[分享] 寄存器、累加器、暂存器有啥区别

  [复制链接]

该用户从未签到

1347

主题

6657

帖子

0

精华

论坛元老

最后登录
2020-7-26
发表于 2020-4-14 10:55:04 | 显示全部楼层 |阅读模式
一、什么是寄存器?

寄存器是集成电路中非常重要的一种存储单元,通常由触发器组成。在集成电路设计中,寄存器分为两类:电路内部使用的寄存器、充当内外部接口的寄存器。

其中,内部寄存器不能被外部电路或软件访问,只是为内部电路的实现存储功能或满足电路的时序要求;而接口寄存器则能同时被内部电路和外部电路或软件访问,CPU中的寄存器就是其中一种,作为软硬件的接口,为广泛的通用编程用户所熟知。

寄存器的主要用途:

◆ 可将寄存器内的数据执行算术及逻辑运算。

◆ 存于寄存器内的地址可用来指向内存的某个位置,即寻址。

◆ 可用来读写数据到电脑的周边设备。

二、什么是累加器?

在中央处理器中,累加器是一种寄存器,用来储存计算产生的中间结果。

如果没有像累加器这样的寄存器,那么在每次计算(如加法、乘法、移位等)后,就必须要把结果写回到内存上,然后再读回来。然而,存取主内存的速度是比从数学逻辑单元到有直接路径的累加器存取更慢。

累加器的主要用途:

◆ 在运算器中,累加器是专门存放算术或逻辑运算的一个操作数和运算结果的寄存器,可以进行加法、减法、读出、移位、循环移位和求补等操作,是运算器的主要部分。

◆ 在汇编语言程序中,累加器AX是一个非常重要的寄存器,但在程序中用来保存临时数据时,最后将其转存到其它寄存器或内存单元中,以防止在其它指令的执行过程中,使其中的数据被修改,从而得到不正确的结果,为程序的调试带来不必要的麻烦。

三、什么是暂存器?

暂存器是用来暂存由数据总线或通用寄存的东西,是中央处理器内的其中组成部分。

暂存器是有限存贮容量的高速存贮部件,可以用来暂存指令、数据和位址 。

1、暂存器的结构组成

◆ 在中央处理器的控制部件中,包含的暂存器有指令暂存器(IR)和程式计数器(PC);在中央处理器的算术及逻辑部件中,包含的暂存器有累加器(ACC)。

◆ 在电脑架构里,处理器中的暂存器是少量且速度快的电脑记忆体,借由提供快速共同地存取数值来加速电脑程式的执行。

◆ 暂存器是记忆体阶层中的最顶端,同时也是系统操作资料的最快速途径。 暂存器通常是以它们可以保存的位元数量来估量的。暂存器现在都以暂存器阵列的方式来实作,但也可能使用单独的正反器、高速的核心记忆体、薄膜记忆体,以及在数种机器上的其它方式来实作出来。

◆ 这个名词通常用来意指,由一个指令之输出或输入可以直接索引到的暂存器群组,更适当的是称之为“架构暂存器”。例如,x86指令集定义8个32位元暂存器的集合,但一个实作x86指令集的CPU可以包含比8个更多的暂存器。

2、暂存器的分类

◆ 资料暂存器:用来储存整数数字(参考以下的浮点暂存器)。在某些简单/老旧的CPU,特别的资料暂存器是累加器,作为数学计算之用。

◆ 位址暂存器:持有记忆体位址,以及用来存取记忆体 。在某些简单/老旧的CPU里,特别的位址暂存器是索引暂存器(可能出现一个或多个)。

◆ 通用目的暂存器:可以保存资料或位址两者,也就是说它们是结合资料/位址暂存器的功用。

◆ 浮点暂存器:用来储存浮点数字。

◆ 常数暂存器:用来持有唯读的数值(如0、1、圆周率等)。

◆ 向量暂存器:用来储存由向量处理器执行SIMD指令所得到的资料。

◆ 特殊目的暂存器:储存CPU内部的资料,像是程式计数器(或称为指令指标)、堆叠暂存器,以及状态暂存器(或称微处理器状态字组)。

◆ 指令暂存器:储存现在正在被执行的指令

◆ 索引暂存器:是在程式执行实用来更改运算元位址之用。

四、累加器是寄存器吗?

累加器的符号是A,顾名思义,其意思就是“加”。但是,A除了能做累加器之外,还能做寄存器。具体来说,有一些特别的指令是专门针对累加器的,比如在8086中的RL,以及mul等指令;而在51单片机中,RL对应的寄存器只能是A。总之,A是一个很特殊的寄存器,除了能做寄存器,还能作累加器。

五、寄存器、累加器、暂存器有什么区别?

寄存器:是CPU内部存储单元,即寄存器是CPU的组成部份。寄存器是有限存贮容量的高速存贮部件,可以用来暂存指令、数据和位址等。

累加器:在CPU内部,累加器是一种寄存器,所有数**算必须通过它进行传递和运算。

暂存器:提到暂存器,就要从寄存器与存储器来讲了。寄存器是CPU里的存储单元,与CPU离得近,所以CPU在运算时通常会用寄存器当中转站;而存储器是在CPU外部的存储器,比如RAM、ROM。暂存器顾名思义,就是暂时存放一定数量数据寄存器或存储器。例如,目标寄存器和结果寄存器都已有数据,需要第三个数据输入;编程时某一逻辑信号经常多次使用,中间结果需要暂时记忆。


回复

使用道具 举报

该用户从未签到

16

主题

2095

帖子

0

精华

金牌会员

最后登录
2024-4-27
发表于 2020-4-14 11:13:16 | 显示全部楼层
谢谢分享
回复

使用道具 举报

该用户从未签到

1347

主题

6657

帖子

0

精华

论坛元老

最后登录
2020-7-26
 楼主| 发表于 2020-4-26 14:36:24 | 显示全部楼层

那你多学习
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 注册/登录

本版积分规则

关闭

站长推荐上一条 /2 下一条

Archiver|手机版|小黑屋|罗姆半导体技术社区

GMT+8, 2024-4-27 22:03 , Processed in 0.086607 second(s), 13 queries , MemCache On.

Powered by Discuz! X3.4

Copyright © 2001-2024, Tencent Cloud.

快速回复 返回顶部 返回列表