程序计数器(PC)

article/2025/8/23 11:18:12

1.PC中存放下一次访存的地址。

2.PC自增的确是PC+取出指令的长度。

3.PC每次自增都是固定的字长。

————————————————————————————

1.程序计数器的工作原理

大概解释一下程序计数器吧,用一个最简单的例子。

首先第一点:PC中存放的是下一步要访问的内存地址。

如图,这是一个非常非常简单的CPU模型。


一个简单到的只有五条指令In(put)、Add 、Sto(re) 、Out(put) 、JMP的微控制器。

每一条指令都由一系列状态,或者说微指令组成。

对于每一条指令,都会在开始执行两条公共的微指令01,02,

01:PC的值打入存储器地址寄存器,PC自增。

02:存储器的数据输入到总线,再流入指令寄存器。

接下来就是每个指令各自的分支路线了,然后再重头循环。


可以很清楚的看出,对于In指令之外的所有指令,

[PC->AR,PC+1] 这条微指令在整个指令执行周期中都不止执行了一次


所以,不是说一条取指微指令执行完之后直接让PC+指令长度,有的指令屁股后面还挂着一两个操作数呢。在取操作数的时候,这条微指令也要执行,始终保证下一次访存时,PC指向正确的位置。在这个过程中PC自增可能执行了不止一次,访存几次就执行几次。


有时候讲组织结构,为了省事,就直接说+1了。

其实我觉得说+1是有歧义的,不如换成自增....

这个自增,究竟增长了几个字节,就要看机器的字长了。

比如这里的粒度是单字节,那PC每次自增,就是后跳一字节,也就是真正的“+1”。


2.PC寄存器是不是真的存在。

程序计数器是实际存在的,别的体系我不清楚,不过x86是有的。


原来和堆栈寄存器放一起的,看,就是变了个名字嘛。





http://chatgpt.dhexx.cn/article/Txuiwyn1.shtml

相关文章

4、程序计数器PC

介绍 JVM中的程序计数寄存器(Program Counter Register)中,Register的命名源于CPU的寄存器,寄存器存储指令相关的现场信息。CPU只有把数据装载到寄存器才能够运行。这里,并非是广义上所指的物理寄存器,或许…

程序计数器介绍

JVM中的程序计数寄存器(Program Counter Register)中,Register的命名源于CPU的寄存器,寄存器存储指令相关的现场信息。CPU只有把数据装载到寄存器才能够运行。这里,并非是广义上所指的物理寄存器,或许将其翻…

计算机组成原理 程序计数器实验

程序计数器实验 实验环境 计算机组成原理实验环境 实验目的 连接程序计数器、地址寄存器、存储器与指令寄存器,理解程序计数器的作用。掌握使用微命令通过程序计数器从存储器中读取指令和数据的方法。 实验要求 做好实验预习,实验之前填写好表 7-4…

2、程序计数器

1、定义: 程序计数器是一块较小的内存空间,它可以看作是:保存当前线程所正在执行的字节码指令的地址(行号)。由于Java虚拟机在多线程模式下是通过线程轮流切换并分配CPU时间片的方式来实现的,因此当某一线程的时间片用完&#xff…

一文理解JVM的程序计数器(PC)

目录 1 功能演示 2 跳转、循环等执行的执行原理 3 关于PC的面试题 JVM中的程序计数寄存器(Program Counter Register)中,Register的命名源于CPU的寄存器,寄存器存储指令相关的信息。CPU只有把数据装载到寄存器才能够运行。但是…

程序计数器

一 程序计数器概念 程序计数器是一块较小的内存空间,它的作用可以看作是当前线程所执行的字节码的行号指示器。在虚拟机的概念模型里(仅是概念模型,各种虚拟机可能会通过一些更高效的方式去实现)1.字节码解释器工作时就是通过改变…

程序计数器的作用--简单易懂

3.程序计数器 什么是程序计数器,它是干什么用的? java中程序计数器是用寄存器实现的,它的作用是寻找下一个要执行的程序。 当我们的java程序被编译成二进制字节码文件后,如下图: 右面,是我们写的代码&…

程序计数器是什么(PC)?

在学习操作系统、JVM的时都可以看到程序计数器(PC)的身影,但是对于程序计数器的概念一直是模模糊糊,这篇就稍微讲一下什么是PC? 一、JVM层面 什么叫做“程序计数器”?它能做什么? 程序计数器…

什么叫做“程序计数器”?它能做什么?

什么叫做“程序计数器”?它能做什么? 程序计数器在JMM中的位置如下 是一个线程独享的数据区域,也就是说,每个线程之间的数据相互不干扰,是一个线程内存空间。 程序计数器 内存空间是不大的,第一眼看到这个…

简单谈谈对MVC设计模式的理解

MVC是Model-View-Controler的简称,即模型-视图-控制器。MVC是一种设计模式,它强制性的把应用程序的输入、处理和输出分开。 MVC中的模型、视图、控制器分担着不同的任务: 视图:视图是用户看到并能与之交互的界面。视图向用户显示…

前端MVC设计模式

http://www.cnblogs.com/jinguangguo/p/3534422.html 前言 前端的MVC,近几年一直很火,大家也都纷纷讨论着,于是乎,抽空总结一下这个知识点。看了些文章,结合实践略作总结并发表一下自己的看法。   最初接触MVC是后端…

Java Web开发中MVC设计模式简介

一、有关Java Web与MVC设计模式 学习过基本Java Web开发的人都已经了解了如何编写基本的Servlet,如何编写jsp及如何更新浏览器中显示的内容。但是我们之前自己编写的应用一般存在无条理性,对于一个小型的网站这样的编写没有任何问题,但是一但…

MVC设计模式及其工作原理

MVC模式介绍: MVC即模型Model、视图View、控制器Controller,用一种将业务逻辑、数据、视图分离的方式组织架构代码,通过分离关注点的方式来支持改进应用组织方式,其促成了业务数据Model从用户界面View中分离出来,还有…

android mvc设计模式

想在你的 Android 应用里优雅地分离出应用状态、用户交互和数据表现吗? 一个开发平台的设计者是的不会有闲工夫为你量身打造一个高层的应用架构的。但是你恰恰可以利用这一点,充分利用你的自由,根据应用需求和规模来实现你自己的架构。如果你…

mvc与mvvm设计模式

MVC与MVVM设计模式 一、MVC(Model- View-Controller) Model(模型):负责保存应用数据、和后端交互同步应用数据,Model主要与业务数据有关、与应用内交互状态无关View(视图):(html、css)负责构建和维护DOM元素&#xff…

MVC设计模式原理简述

开发MVC项目之前首先明确一点,MVC设计模式可以带来更好的软件结构和代码重用。 MVC如何工作 MVC是一个设计模式,它强制性的使应用程序的输入、处理和输出分开。使用MVC 应用程序被分成三个核心部件:模型、视图、控制器。它们各自处理自己的…

[Java]JavaWeb开发中的MVC设计模式

一、有关Java Web与MVC设计模式 学习过基本Java Web开发的人都已经了解了如何编写基本的Servlet,如何编写jsp及如何更新浏览器中显示的内容。但是我们之前自己编写的应用一般存在无条理性,对于一个小型的网站这样的编写没有任何问题,但是一但…

MVC设计模式及流程

MVC设计模式: 概述: 是一种开发结构合理、能使前后端分离、流程控制逻辑、业务逻辑调用与展示逻辑分离,实现高内聚,低耦合的设计模式。 M:数据实体模型(Model或Entity): 每一个类的成员变量字段对应数据库字段对应(对应的Entity…

SpringMVC(一)MVC设计模式

一、简介 MVC设计模式一般是指MVC框架,Model数据模型层,View视图层,Controller控制层。 使用MVC目的是将M和V实现代码分离,使统一程序有不同的表现形式。其中,View定义比较清晰,指用户界面。 web项目中&a…

MVC设计模式和UML类图

文章目录 一、UML 类图:二、MVC 设计模式 一、UML 类图: 14中UML图:https://blog.csdn.net/yoyo328/article/details/78009237 二、MVC 设计模式 MVC是常用的设计模式之一,将整个程序分为三个层次:视图模式层&…