首页 > 编程知识 正文

程序计数器在什么位置,程序计数器pc属于控制器

时间:2023-05-04 07:09:11 阅读:176028 作者:4470

引言学习操作系统时,往往能看到程序计数器的样子,但对程序计数器的概念一直很模糊,今天在了解了什么是PC之后,就写博客。

程序计数器是什么 PC(program counter)

在百度中找到的解释是这样的:

位于CPU控制单元的程序计数器(PC )的功能是用于保存指令的地址。 在执行程序时,PC的初始值是程序最初的命令的地址,在依次执行程序时,控制器首先用程序计数器指出的命令地址从存储器中取出命令,在分析执行该命令的同时,对PC的值加1,然后执行(入侵删除)

其实大致意思是这样的,但单独看这个概念有点模糊。 首先可以结合三个例子来看看什么是PC,什么是PC

第一,上下文开关知道操作系统采用一种高级形式的异常控制流(ECF )上下文开关以实现系统同时执行。 其基本思想是,程序被屏蔽,发生费时的系统调用或中断)时,CPU置换当前的工作线程,在这些费时的操作完成时返回上一个程序段的跳转。 这个跳跃很有趣。 用户堆栈、内核堆栈、状态寄存器等当然都应该被记录下来,但是操作系统如何知道代码在哪里运行呢? 这就是程序计数器的作用。程序计数器(PC)的功能是用于存放指令的地址这样想的话,就相当明确了

二是非局部跳跃非局部跳跃是用户级的异常控制流,其作用与goto相似,但与goto略有不同的是非局部跳跃可以跨越函数进行跳跃。 其实跳转在某种意义上和上下文切换很相似,他们必须把现在的状态转换成别的状态,它牵扯到应该执行哪个指令的问题,这也是我们程序计数器的作用

三、fork ) )函数在fork后父子开始执行同一命令。 这是因为子进程复制了父进程的程序计数器,但是程序计数器的作用是什么呢,因为是存储现在的命令,所以很容易理解。

在三个简单的例子后我们已经大概的理解了程序计数器的作用是什么 接下来我们就来看看程序计数器的处理流程

开始执行程序之前,需要将其起始地址,即包含程序的一个指令的存储器单元地址发送到PC。 因此,程序计数器(PC )的内容是从存储器中提取的第一条指令的地址。 执行指令时,增加CPU将自动修改PC的内容,即每个执行指令的PC的1个量。 此量等于指令中包含的字节数,因此始终保持要执行的下一条指令的地址。 由于大多数命令都是按顺序执行的,因此更改过程通常只需在PC上加1。 2020年5月29日:

实际上,程序计数器8086的下方是IP寄存器,IA-32的下方是EIP寄存器。

这些作用是保存指向当前需要检索的指令的存储器地址。 当CPU从内存中取出指令时,EIP/IP自动增加并指向下一个指令的地址。 如此,上下文开关实际上被认为是寄存器的切换。

参考:

博文《程序计数器(Program Counter)是一个实际存在的寄存器吗?》博文《程序计数器》书籍《Computer Systems:A Programmer’s Perspective》

版权声明:该文观点仅代表作者本人。处理文章:请发送邮件至 三1五14八八95#扣扣.com 举报,一经查实,本站将立刻删除。