程序计数器PC的功能是什么?

程序计数器PC的功能是什么?,第1张

程序计数器是用于存放执行指令的地方。

为了保证程序(在 *** 作系统中理解为进程)能够连续地执行下去,CPU必须具有某些手段来确定下一条指令的地址。而程序计数器正是起到这种作用,所以通常又称为指令计数器。

在程序开始执行前,必须将它的起始地址,即程序的一条指令所在的内存单元地址送入PC,因此程序计数器(PC)的内容即是从内存提取的第一条指令的地址。

扩展资料:

注意事项:

在程序开始执行前,将程序指令序列的起始地址,即程序的第一条指令所在的内存单元地址送入PC,CPU按照PC的指示从内存读取第一条指令(取指)。

当执行指令时,CPU自动地修改PC的内容,即每执行一条指令PC增加一个量,这个量等于指令所含的字节数(指令字节数),使PC总是指向下一条将要取 指的指令地址。由于大多数指令都是按顺序来执行的,所以修改PC的过程通常只是简单的对PC加指令字节数。

当程序转移时,转移指令执行的最终结果就是要改变PC的值,此PC值就是转去的目标地址。处理器总是按照PC指向取指、译码、执行,以此实现了程序转移。

参考资料来源:百度百科-程序计数器

参考资料来源:百度百科-pc

程序计数器PC(program Counter)

程序计数器在物理上是独立的,它不属于特殊内部数据存储器块中。PC是一个16位的计数器,

用于存放一条要执行的指令地址,寻址范围为64kB,PC有自动加1功能,即完成了一条指令的执行后,其内容自动加1。PC本身并没有地址,因而不可寻址,用户无法对它进行读写,但是可以通过转移、调用、返回等指令改变其内容,以控制程序按我们的要求去执行。

复位后为0000H(16位)

数据指针(DPTR)

数据指针为16位寄存器,编程时,既可以按16位寄存器来使用,也可以按两个8位寄存器来使用,即高位字节寄存器DPH和低位字节DPL。

DPTR主要是用来保存16位地址,当对64kB外部数据存储器寻址时,可作为间址寄存器使用,此时,使用如下两条指令:

MOVXA, @DPTR

MOVX@DPTR, A

在访问程序存储器时,DPTR可用来作基址寄存器,采用基址+变址寻址方式访问程序存储器,这条指令常用于读取程序存储器内的表格数据。

MOVCA, @A+@DPTR

复位后为0000H(16位)

程序计数器PC和指令指针寄存器二者之间的关系可以参考下面的理解:

程序计数器PC和指令指针寄存器IP是一个东西,它们都是存储下一条执行指令的地址。

在X86上一般叫IP,在ARM上叫PC(也是R15)。

在X86上不能直接给IP赋值,可以通过jmp来改变它的值。

而ARM上可以通过LDR直接对PC赋值。

扩展资料:

指令指针寄存器IP(X86型CPU)相当于ARM型CPU中的程序计数器PC,用于控制程序中指令的执行顺序。

正常运行时,IP中含有BIU要取的下一条指令(字节)的偏移地址,一般情况下,每从内存中存取一次指令码,IP就自动加1,从而保证指令的顺序执行,IP实际上是指令机器码存放内存单元的地址指针。

参考资料来源:百度百科-指令指针寄存器

参考资料来源:百度百科-程序计数器


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

原文地址: https://www.outofmemory.cn/yw/10990910.html

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

发表评论

登录后才能评论

评论列表(0条)

保存