程序计数器PC。为了保证程序(在 *** 作系统中理解为进程)能够连续地执行下去,CPU必须具有某些手段来确定下一条指令的地址。程序计数器正是起到这种作用,所以通常又称为指令计数器。
程序计数器的处理流程:在程序开始执行前,必须将它的起始地址,即程序的一条指令所在的内存单元地址送入PC,因此程序计数器(PC)的内容即是从内存提取的第一条指令的地址。当执行指令时,CPU将自动修改PC的内容。
即每执行一条指令PC增加一个量,这个量等于指令所含的字节数,以便使其保持的总是将要执行的下一条指令的地址。由于大多数指令都是按顺序来执行的,所以修改的过程通常只是简单的对PC加1。
扩展资料程序计数器的异常处理流程
当遇到转移指令如JMP指令时,后继指令的地址(即PC的内容)必须从指令寄存器中的地址字段取得。在这种情况下,下一条从内存取出的指令将由转移指令来规定,而不像通常一样按顺序来取得。因此程序计数器的结构应当是具有寄存信息和计数两种功能的结构。
程序中的每条指令规定机器完成一组基本 *** 作。如果把计算机完成一次任务的过程比作乐队的一次演奏,那么控制器就好比是一位指挥,计算机的其它功能部件就好比是各种乐器与演员,而程序就好像是乐谱。计算机的工作过程就是执行程序的过程,或者说,控制器是根据程序的规定对计算机实施控制的。
关于我们一般常说的PC程序计数器实际上是一个概念性的内容,是对CPU有关下一条指令存放地址的统称,不同的体系结构下的实现方式是不一样的。
对于像Intel和AMD这样x86体系结构的计算机而言,PC计数器是通过cs:ip寄存器来实现的,此时的pc计数器不能通过mov指令直接进行改变,因为mov指令只能改变1个寄存器,因此如果想要改变程序的执行流需要通过jmp、call、int、ret等指令;
而对于ARM体系结构的计算机而言就是通过mov指令来改变执行流,因为ARM体系结构下有专门的寄存器作为程序计数器,就叫PC,因此如果想要改变程序执行流,直接对PC寄存器赋值即可。
PC的作用是用来存放将要执行的指令地址,共16位,可对64K ROM直接寻址,PC低8位经P0口输出,高8位经P2口输出。也就是说,程序执行到什么地方,程序计数器PC就指到哪里,它始终是跟蹿着程序的执行。我们知道,用户程序是存放在内部的ROM中的,我们要执行程序就要从ROM中一个个字节的读出来,然后到CPU中去执行,那么ROM具体执行到哪一条呢?这就需要我们的程序计数器PC来指示。
以上就是关于保存下一条将要执行的指令地址的寄存器是全部的内容,包括:保存下一条将要执行的指令地址的寄存器是、关于程序计数器PC、51单片机中的程序计数器pc用来等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)