关于数据寄存器和指令寄存器?

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了关于数据寄存器和指令寄存器?相关的知识,希望对你有一定的参考价值。

书上说:数据寄存器可以保存一条正在译码的指令;指令寄存器用来保存当前正在执行的一条指令。当执行一条指令时,先把它从内存取到数据寄存器中,然后再传送到指令寄存器。指令寄存器中操作码字段的输出就是指令译码器的输入。1、数据寄存器不是保存正在译码的指令吗,又怎么会传到指令寄存器后再给译码器译码?2、数据寄存器和指令寄存器,具体来说分别有哪些?3、这两种寄存器在片内RAM上吗?4、通过简单的例子说说两种寄存器的工作过程。 我刚学这方面,希望知道的人不理赐教!给分最实际,每个题最少50分!

1指令寄存器(IR )用来保存当前正在执行的一条指令。当执行一条指令时,先把它从内存取到数据寄存器(DR)中,然后再传送至IR。指令划分为操作码和地址码字段,由二进制数字组成。为了执行任何给定的指令,必须对操作码进行测试,以便识别所要求的操作。 指令译码器就是做这项工作的。指令寄存器中操作码字段的输出就是指令译码器的输入。操作码一经译码后,即可向操作控制器发出具体操作的特定信号。 参考技术A 这个比较难,具体到每一条指令;他会分成操作的指令语句和数据语句数据寄存器是保存的数据部分,指令寄存器只保存指令的拿你复制一段文字为例:ctrl+v保存在指令里面,文字保存在数据里面,Ctrl+v计算机硬件并不认识,这时候他就会被译码器编译为(010110)(这个编码是暂时命名的),同样数据也被执行同样的操作。这样硬件就认识了。具体到电脑上面更加复杂了,最简单的参照80c51的模型学习 参考技术B Core微体系结构在取指单元和译码单元加入了一个循环流检测器,这个循环流检测器是一个包含18条指令的缓冲,用于检测需要执行的指令是否是存在于一个循环中(循环的大小不能超过18条指令)。当CPU执行指令时,循环流检测器会检测自身的缓冲器。如果发现需要执行的指令包含在其中,将不再对这条指令进行分支预测和取指,而是从缓冲器中取出这条指令,并开始下一步的译码。循环流检测器的加入可以有效改善CPU在执行包含大量循环的应用程序时的表现。(还是拿洗衣房那个例子来讲,如果你每次过去的时候,不需要登记即可直接洗衣,那么无疑提高了你洗衣服的效率)。

ARM指令

●数据处理指令:数据传输指令,算术指令,逻辑指令,比较指令,乘法指令,前导零计数
●程序状态访问指令:MRS和MSR
●分支指令:B、BL和BX
●访存指令:单数据访存指令,多数据访存指令,数据交换指令
●异常产生指令:SWI和BKPT
●协处理器指令:CDP、LDC、STC、MCR、MRC


ARM指令寻址方式:
寄存器寻址、立即寻址、寄存器移位寻址、寄存器间接寻址、基址变址寻址、相对寻址、多寄存器寻址、堆栈寻址

堆栈寻址与多寄存器寻址对照:
技术图片


参考:https://blog.csdn.net/yuanzywhu/article/details/104975191

以上是关于关于数据寄存器和指令寄存器?的主要内容,如果未能解决你的问题,请参考以下文章

[bx]和loop

移动指令和运算指令

初识汇编

汇编指令和寄存器

ARM指令

CPU寄存器栈指令等03