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

指令寄存器与程序存储器有什么区别?,第1张

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

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和外围设备交换信息时,我们同样使用 地址寄存器和数据缓冲寄存器

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

0000H-0002H或者0003H-0032H。

0000H-0002H:系统复位后,PC为0000H,单片机从0000H开始执行程序,如果程序不从0000H开始执行笑乱,则应在这三个单元中存放一迅让条无条件转移指令,让系统跳过这一区域,直接去执行用户制定的程序。

0003H-0032H:

被均匀分成6段,只能存放中断服务程序,通常情况下,每段只有8个地址单元,不能保存完整的中断服务程序,因而一般在中断响应的地址区,存放一条无条件转移指令,指向程序存储器的真正存放中断服务程序的空间。

4K字节的程序存储器或者说只读存储器,我们写的程序经过编译器编亩升局译成机器码都是存在这个区域,称为程序存储器。


欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/yw/12503076.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-05-25
下一篇 2023-05-25

发表评论

登录后才能评论

评论列表(0条)

保存