0
  • 聊天消息
  • 系统消息
  • 评论与回复
登录后你可以
  • 下载海量资料
  • 学习在线课程
  • 观看技术视频
  • 写文章/发帖/加入社区
会员中心
创作中心

完善资料让更多小伙伴认识你,还能领取20积分哦,立即完善>

3天内不再提示

解析一些常见的寄存器

jf_78858299 来源:小牛呼噜噜 作者:小牛呼噜噜 2023-02-09 14:47 次阅读

现代CPU内部除了 运算器和控制器 还有一个常见的组件: 寄存器是CPU内部用来存放数据的一些小型的存储区域,用来暂时存放参与运算的数据以及运算结果。我们了解了计算机各个硬件读写速度的差异,其中从存储器速度、容量和价格的关系金字塔图发现:最上层的寄存器速度最快,容量最小,价格也最昂贵

下面我们来看看几个常见寄存器:

数据寄存器(DR)

数据寄存器(Data Register,DR)又称数据缓冲寄存器,数据寄存器用于存放操作数,其位数应满足多数数据类型的数值范围,其主要功能是作为CPU和主存、外设之间信息传输的中转站,用以弥补CPU和主存、外设之间操作速度上的差异。

数据寄存器用来暂时存放由主存储器读出的一条指令或一个数据字;反之,当向主存存入一条指令或一个数据字时,也将它们暂时存放在数据寄存器中。

数据寄存器的作用是 :

  1. 作为CPU和主存、外围设备之间信息传送的中转站;
  2. 弥补CPU和主存、外围设备之间在操作速度上的差异;
  3. 在单累加器结构的运算器中,数据寄存器还可兼作操作数寄存器。

地址寄存器(AR)

地址寄存器(Address Register,AR)用来保存CPU当前所访问的主存单元的地址。其本身可以具有通用性,也可用于特殊的寻址方式,如用于基址寻址的段指针(存放基地址)、用于变址寻址的变址寄存器和用于堆栈寻址的栈指针。地址寄存器的位数必须足够长,以满足最大的地址范围。

由于在主存和CPU之间存在操作速度上的差异,所以必须使用地址寄存器来暂时保存主存的地址信息,直到主存的存取操作完成为止。

程序状态寄存器(PSW)

程序状态寄存器(PSW),用来保存各类运算指令或测试指令的结果的各种状态信息 除此之外,程序状态字寄存器还用来保存中断和系统工作状态等信息,以便CPU和系统及时了解机器运行状态和程序运行状态。程序状态寄存器 是构成 运算器的重要组成部分

累加寄存器(AC)

累加寄存器通常简称累加器(AC),是一个通用寄存器。

累加器的功能是:当运算器的算术逻辑单元ALU执行算术或逻辑运算时,为ALU提供一个工作区,可以为ALU暂时保存一个操作数或运算结果。显然,运算器中至少要有一个累加寄存器。

乘商寄存器(MQ)

在运算器中,乘商寄存器主要负责数据的乘法与除法运算并可保存运算结果,是运算器的基本组成部分,是运算器三个基本寄存器之一。

程序计数器(PC)

程序计数器(PC),具有寄存信息计数两种功能,一般用来 存放下一条指令在主存储器中的地址

在程序执行之前,首先必须将程序的首地址,即程序第一条指令所在主存单元的地址送入PC,因此PC的内容即是从主存提取的第一条指令的地址。

当执行指令时,CPU能自动递增PC的内容,使其始终保存将要执行的下一条指令的主存地址,为取下一条指令做好准备。但是,当遇到转移指令时,下一条指令的地址将由转移指令的地址码字段来指定,而不是像通常的那样通过顺序递增PC的内容来取得。

指令寄存器(IR)

指令寄存器(Instruction Register,IR), 用来保存当前欲执行的指令

当执行一条指令时,首先把该指令从主存读取到数据寄存器中,然后再传送至指令寄存器。

指令包括操作码和地址码两个字段,为了执行指令,必须对操作码进行测试,识别出所要求的操作,指令译码器 就是完成这项工作的。指令译码器对指令寄存器的操作码部分进行译码,以产生指令所要求操作的控制电位,并将其送到微操作控制线路上,在时序部件定时信号的作用下,产生具体的操作控制信号。

指令寄存器中操作码字段的输出就是指令译码器的输入。操作码一经译码,即可向操作控制器发出具体操作的特定信号。

MAR、MDR

另外寄存器不只存在CPU中,存储器中也存在寄存器,比如MAR、MDR

  • MAR:存储器地址寄存器,用于存放将被访问的存储单元的地址。作用和AR类似
  • MDR:存储器数据寄存器,用于存放欲存入存储器中的数据或最近从存储器中读出的数据。作用和DR类似

其中MAR位数反映储存单元的个数,即最多能表示多少个不同的状态;MDR位数=储存字长=每个储存单元的大小

小结

将上面各个寄存器组合起来,我们可以画出一幅计算机更细化的组成图:

当存储器开始读操作的时候,存储器将指定地址单元内的指令读至MDR,再由MDR送至IR。IR将指令中的操作码送到CU中,用来分析指令并发出各种微操作命令序列。再加指令中地址码送到MAR,用来去操作数

在CPU内部必须给ALU提供数据,因此ALU必须可直接访问MDR,ALU的外围还可以有另一些寄存器AC、MQ、X,这些寄存器用于ALU的输入、输出以及用于和MDR及用户可见寄存器交换数据。

在CPU的控制和状态寄存器中,还有用来存放程序状态字PSW的寄存器,该寄存器用来存放条件码和其他状态信息。在具有中断系统的机器中还有中断标记寄存器等等。

声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉
  • cpu
    cpu
    +关注

    关注

    68

    文章

    10850

    浏览量

    211517
  • 缓冲
    +关注

    关注

    0

    文章

    52

    浏览量

    17817
  • 数据寄存器
    +关注

    关注

    0

    文章

    33

    浏览量

    7750
收藏 人收藏

    评论

    相关推荐

    解析CPU中的寄存器

    8位寄存器在16位寄存器中,而16位寄存器在32位寄存器中。
    发表于 09-19 10:10 4085次阅读

    基于DWC2的USB驱动开发-DOEP接收相关的DMA寄存器详解

    前面我们详细介绍了发送即DIEP相关的一些寄存器,这篇我们来看看接收即DOEP相关的一些寄存器。形式上DOEP和DIEP
    的头像 发表于 07-19 09:00 1271次阅读
    基于DWC2的USB驱动开发-DOEP接收相关的DMA<b class='flag-5'>寄存器</b>详解

    芯片DFX:Coresight的寄存器

    coresight对于每个coresight组件,规定了一些寄存器,这些寄存器的偏移是固定的,这些寄存器,是必须存在的。但是有的,可以不实现该寄存器
    的头像 发表于 11-02 11:45 1110次阅读
    芯片DFX:Coresight的<b class='flag-5'>寄存器</b><b class='flag-5'>一</b>览

    寄存器组CM3拥有通用寄存器组和一些特殊寄存器

    寄存器组CM3拥有通用寄存器组R0~R15和一些特殊寄存器R13:SP堆栈指针寄存器功能:指向堆栈的栈顶详解:1)异常模式发生时,程序把通用
    发表于 12-16 06:44

    寄存器,寄存器是什么意思

    寄存器,寄存器是什么意思 寄存器定义  寄存器是中央处理内的组成部分。寄存器是有限存贮容量
    发表于 03-08 14:26 2.2w次阅读

    数据寄存器,数据寄存器是什么意思

    数据寄存器,数据寄存器是什么意思 数据寄存器数据寄存器包括累加AX、基址寄存器BX、计数
    发表于 03-08 14:38 1.3w次阅读

    ARM寄存器详解

    ARM有37个寄存器,其中31个通用寄存器,6个状态寄存器。   这里尤其要注意区别的是ARM自身寄存器和它的一些外设的
    发表于 07-10 10:04 2956次阅读

    CSD寄存器解析

    CSD寄存器解析,SD卡寄存器解说,值得学习。
    发表于 01-06 14:25 0次下载

    寄存器与移位寄存器

    寄存器与移位寄存器:介绍寄存器原理和移位寄存器的原理及实现。
    发表于 05-20 11:47 0次下载

    基于stm32的GPIO寄存器学习解析

    寄存器 GPIOx->IDR,GPIOx->ODR 个32位的 set/reset 寄存器 GPIOx->BSRR 位16位的 reset
    的头像 发表于 01-11 09:03 1.3w次阅读
    基于stm32的GPIO<b class='flag-5'>寄存器</b>学习<b class='flag-5'>解析</b>

    开发个Linux调试就必须要知道寄存器和内存!

    在我们正真的读取寄存器前,调试需要知道一些关于x8664架构的相关知识。包括通用寄存器,专用寄存器以及浮点
    发表于 05-14 17:28 1478次阅读

    51单片机的一些特殊寄存器资料说明

    本文档的主要内容详细介绍的是51单片机的一些特殊寄存器资料说明。包括了:中断使能寄存器,中断优先级寄存器,电源控制PCON,PSW处理状态
    发表于 07-26 17:36 2次下载
    51单片机的<b class='flag-5'>一些</b>特殊<b class='flag-5'>寄存器</b>资料说明

    寄存器、锁存和触发三者对比

    我们在微控制(MCU)等电子系统中存储数据的方式之是在寄存器中。一些寄存器个位/比特组成
    发表于 04-14 14:55 3445次阅读
    <b class='flag-5'>寄存器</b>、锁存<b class='flag-5'>器</b>和触发<b class='flag-5'>器</b>三者对比

    如何在VHDL中实现个简单的寄存器

    寄存器是设备中用于存储数据的常见电子元件。这些是最小的数据保存元素,用于存储 CPU 正在处理的操作数或指令。有不同类型的寄存器,即指令寄存器、程序
    发表于 07-29 16:48 4617次阅读
    如何在VHDL中实现<b class='flag-5'>一</b>个简单的<b class='flag-5'>寄存器</b>

    labview读取三菱plc寄存器内容

    如何使用LabVIEW读取三菱PLC的寄存器内容,并提供一些实例代码和注意事项。 首先,我们需要了解PLC寄存器的基本概念。PLC寄存器
    的头像 发表于 12-27 16:31 2234次阅读