「指令寄存器」指令寄存器和程序计数器的区别

2024-12-24 02:25:59 趣味生活 41阅读 回答者:小白菜
最佳答案今天我们来看一下指令寄存器,以下6个关于指令寄存器的观点希望能帮助到您找到想要的百科知识。本文目录在CPU中,指令寄存器的作用是指令寄存器与程序存储器有什么区别?CPU中有哪些主要寄存器指令存储器的作

今天我们来看一下指令寄存器,以下6个关于指令寄存器的观点希望能帮助到您找到想要的百科知识。

本文目录

  • 在CPU中,指令寄存器的作用是
  • 指令寄存器与程序存储器有什么区别?
  • CPU中有哪些主要寄存器
  • 指令存储器的作用
  • 举出CPU中6个主要寄存器的名称及功能
  • 汇编指令和寄存器
  • 在CPU中,指令寄存器的作用是

    指令寄存器用于暂存当前正在执行的指令。指令寄存器的时钟信号是clk,在clk的上升沿触发。指令寄存器将数据总线送来的指令存入16位的寄存器中。

    但并不是每次数据总线上的数据都需要寄存,因为数据总线上有时传输指令,有时传输数据。由CPU状态控制器的 Ir-ena信号控制数据是否需要寄存。复位时,指令寄存器被清零。

    扩展资料

    指令寄存器可以在移入一条新的指令的同时,将当前指令保持在它的输出端口。可用这个寄存器来指定所要执行的操作和选择测试数据寄存器。当TAP接收到一条指令寄存器扫描指令时,对指令寄存器进行读取。在指令寄存器工作过程中,来自TAP的控制信号选择指令寄存器的输出驱动TDO管脚。

    指令寄存器的功能由三部分构成:扫描移位寄存器、保持寄存器与译码逻辑。扫描移位寄存器从TDI端扫描移入当前指令代码;保持寄存器对当前指令代码进行保持;译码逻辑根据当前指令代码,产生相应的数据寄存器控制信号。三部分的运行控制信号均来自TAP控制器。

    指令寄存器与程序存储器有什么区别?

    先明白定义再说区别和原理:

    1、程序存储器(program storage)

    在计算机的主存储器中专门用来存放程序、子程序的一个区域。

    2、指令寄存器(IR ):用来保存当前正在执行的一条指令。当执行一条指令时,先把它从内存取到数据寄存器(DR)中,然后再传送至IR。指令划分为操作码和地址码字段,由二进制数字组成。为了执行任何给定的指令,必须对操作码进行测试,以便识别所要求的操作。指令译码器就是做这项工作的。指令寄存器中操作码字段的输出就是指令译码器的输入。操作码一经译码后,即可向操作控制器发出具体操作的特定信号。

    3、程序计数器(PC):为了保证程序(在操作系统中理解为进程)能够连续地执行下去,CPU必须具有某些手段来确定下一条指令的地址。而程序计数器正是起到这种作用,所以通常又称为指令计数器。在程序开始执行前,必须将它的起始地址,即程序的一条指令所在的内存单元地址送入PC,因此程序计数器(PC)的内容即是从内存提取的第一条指令的地址。当执行指令时,CPU将自动修改PC的内容,即每执行一条指令PC增加一个量,这个量等于指令所含的字节数,以便使其保持的总是将要执行的下一条指令的地址。由于大多数指令都是按顺序来执行的,所以修改的过程通常只是简单的对PC加1。

    当程序转移时,转移指令执行的最终结果就是要改变PC的值,此PC值就是转去的地址,以此实现转移。有些机器中也称PC为指令指针IP(Instruction Pointer)

    4、地址寄存器:用来保存当前CPU所访问的内存单元的地址。由于在内存和CPU之间存在着操作速度上的差别,所以必须使用地址寄存器来保持地址信息,直到内存的读/写操作完成为止 。�

    当CPU和内存进行信息交换,即CPU向内存存/取数据时,或者CPU从内存中读出指令时,都要使用地址寄存器和数据缓冲寄存器。同样,如果我们把外围设备的设备地址作为像内存的地址单元那样来看待,那么,当CPU和外围设备交换信息时,我们同样使用 地址寄存器和数据缓冲寄存器

    基本上定义就是区别和应用。

    CPU中有哪些主要寄存器

    不同架构的CPU寄存器是不一样的,即使是同一架构,不同型号的CPU也有差别。这里以80386的CPU为例,寄存器分为6类。其中可供应用程序员使用的为通用寄存器(EAX、EBX、ECX、EDX、ESP、EBP、ESI、EDI)、段寄存器(CS、DS、SS、ES、FS、GS)和标志和控制寄存器(EIP、EFLAGS)。

    可以指定任何通用寄存器的内容作为操作数的地址,以及在形成地址的过程中作如加法或减法这样简单的算术运算。但像串的运算和双精度的乘法和除法操作这类较复杂的操作,必须要从固定的寄存器中取一个或多个操作数。

    寄存器的特点:

    在集成电路设计中,寄存器可分为电路内部使用的寄存器和充当内外部接口的寄存器这两类。内部寄存器不能被外部电路或软件访问,只是为内部电路的实现存储功能或满足电路的时序要求。而接口寄存器可以同时被内部电路和外部电路或软件访问,CPU中的寄存器就是其中一种,作为软硬件的接口,为广泛的通用编程用户所熟知。

    CPU中至少要有六类寄存器:指令寄存器(IR)、程序计数器(PC)、地址寄存器(AR)、数据寄存器(DR)、累加寄存器(AC)、程序状态字寄存器(PSW)。这些寄存器用来暂存一个计算机字,其数目可以根据需要进行扩充。

    以上内容参考:

    百度百科-内存资料寄存器

    指令存储器的作用

    指令存储器的作用是指令寄存器用于暂存当前正在执行的指令。指令寄存器的时钟信号是clk,在clk的上升沿触发。指令寄存器将数据总线送来的指令存入16位的寄存器中。

    但并不是每次数据总线上的数据都需要寄存,因为数据总线上有时传输指令,有时传输数据。由CPU状态控制器的Irena信号控制数据是否需要寄存。复位时,指令寄存器被清零。

    指令寄存器功能

    指令寄存器IR,InstructionRegister,用于暂存当前正在执行的指令。指令寄存器的时钟信号是clk,在clk的上升沿触发。

    指令寄存器将数据总线送来的指令存入16位的寄存器中,但并不是每次数据总线上的数据都需要寄存,因为数据总线上有时传输指令,有时传输数据。由CPU状态控制器的Irena信号控制数据是否需要寄存。复位时,指令寄存器被清零。

    举出CPU中6个主要寄存器的名称及功能

    1. 数据寄存器 数据寄存器(Data Register,DR)又称数据缓冲寄存器,其主要功能是作为CPU和主存、外设之间信息传输的中转站,用以弥补CPU和主存、外设之间操作速度上的差异。 数据寄存器用来暂时存放由主存储器读出的一条指令或一个数据字;反之,当向主存存入一条指令或一个数据字时,也将它们暂时存放在数据寄存器中。 数据寄存器的作用是 : (1)作为CPU和主存、外围设备之间信息传送的中转站; (2)弥补CPU和主存、外围设备之间在操作速度上的差异; (3)在单累加器结构的运算器中,数据寄存器还可兼作操作数寄存器。 2. 指令寄存器 指令寄存器(Instruction Register,IR)用来保存当前正在执行的一条指令。 当执行一条指令时,首先把该指令从主存读取到数据寄存器中,然后再传送至指令寄存器。 指令包括操作码和地址码两个字段,为了执行指令,必须对操作码进行测试,识别出所要求的操作,指令译码器(Instruction Decoder,ID)就是完成这项工作的。指令译码器对指令寄存器的操作码部分进行译码,以产生指令所要求操作的控制电位,并将其送到微操作控制线路上,在时序部件定时信号的作用下,产生具体的操作控制信号。 指令寄存器中操作码字段的输出就是指令译码器的输入。操作码一经译码,即可向操作控制器发出具体操作的特定信号。 3. 程序计数器 程序计数器(Program Counter,PC)用来指出下一条指令在主存储器中的地址。 在程序执行之前,首先必须将程序的首地址,即程序第一条指令所在主存单元的地址送入PC,因此PC的内容即是从主存提取的第一条指令的地址。 当执行指令时,CPU能自动递增PC的内容,使其始终保存将要执行的下一条指令的主存地址,为取下一条指令做好准备。若为单字长指令,则(PC)+1àPC,若为双字长指令,则(PC)+2àPC,以此类推。 但是,当遇到转移指令时,下一条指令的地址将由转移指令的地址码字段来指定,而不是像通常的那样通过顺序递增PC的内容来取得。 因此,程序计数器的结构应当是具有寄存信息和计数两种功能的结构。 4. 地址寄存器 地址寄存器(Address Register,AR)用来保存CPU当前所访问的主存单元的地址。 由于在主存和CPU之间存在操作速度上的差异,所以必须使用地址寄存器来暂时保存主存的地址信息,直到主存的存取操作完成为止。 当CPU和主存进行信息交换,即CPU向主存存入数据/指令或者从主存读出数据/指令时,都要使用地址寄存器和数据寄存器。 如果我们把外围设备与主存单元进行统一编址,那么,当CPU和外围设备交换信息时,我们同样要使用地址寄存器和数据寄存器。 5. 累加寄存器 累加寄存器通常简称累加器(Accumulator,AC),是一个通用寄存器。 累加器的功能是:当运算器的算术逻辑单元ALU执行算术或逻辑运算时,为ALU提供一个工作区,可以为ALU暂时保存一个操作数或运算结果。 显然,运算器中至少要有一个累加寄存器。 6. 程序状态字寄存器 程序状态字(Program Status Word,PSW)用来表征当前运算的状态及程序的工作方式。 程序状态字寄存器用来保存由算术/逻辑指令运行或测试的结果所建立起来的各种条件码内容,如运算结果进/借位标志(C)、运算结果溢出标志(O)、运算结果为零标志(Z)、运算结果为负标志(N)、运算结果符号标志(S)等,这些标志位通常用1位触发器来保存。

    汇编指令和寄存器

    早期的 x86 CPU 只有 8 个寄存器( eax 、 ebx 、 ecx 、 edx 、 esi 、 edi 、 ebp 、 esp ),而且每个都有不同的用途。 x86-64 中,所有寄存器都是 64 位,相对 32 位的 x86 来说,标识符发生了变化,比如:从原来的 eax 变成了 rax 。为了向后兼容性, eax 依然可以使用,不过指向了 rax 的低 32 位。 比如在 64 位 CPU 上: 它们的对照关系如下: 通过 gdb 的 p /x $reg 命令打印寄存器的值。 mov 指令是最常见的数据传送指令,类似于高级语言中的赋值语句。 mov 指令可以实现寄存器与寄存器之间、寄存器与内存之间、寄存器与立即数、内存与立即数的数据传递。 mov 指令的用法示例如下: push 指令和 pop 指令互为相反的操作指令。 push 指令把一个 32 位的操作数送入堆栈,该操作致使 esp 寄存器的值减 4。 esp 寄存器始终指向栈顶。堆栈的方向是由高地址向低地址进行延伸,也就是执行的 push 次数越多, esp 寄存器指向的地址越小。 在 32 位平台上,每执行一次 push 指令, esp 指向的地址都减小 4 字节。 pop 指令把 esp 指向地址(栈顶)中的值送入寄存器或内存中,然后 esp 指向的地址加 4 字节。 执行的 pop 指令越多, esp 寄存器指向的地址越大。

    今天的百科内容先分享到这里了,读完本文《「指令寄存器」指令寄存器和程序计数器的区别》之后,是否是您想找的答案呢?想要了解更多百科知识,敬请关注宝百科,您的关注是给小编最大的鼓励。

    声明:宝百科所有作品(图文、音视频)均由用户自行上传分享,仅供网友学习交流。若您的权利被侵害,请联系 9072867@qq.com
    广告位招租
    广告位招租