程序计数器(PC)
来源:互联网 发布:网络写文章赚钱的方法 编辑:程序博客网 时间:2024/05/18 02:13
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是有的。
原来和堆栈寄存器放一起的,看,就是变了个名字嘛。
1 0
- 程序计数器(PC)
- ARM 程序计数器(Program Counter,PC)
- 程序计数器 PC
- 程序计数器 PC
- 程序存储器 指令寄存器 程序计数器(PC,IP) 地址寄存器的区别与联系
- ARM发生异常时返回时程序计数器(PC)的计算
- 程序计数器
- 程序计数器
- 计数器程序 (简单的计数器,功能齐全)
- 计数器(图片计数器)
- 3、计数器小程序
- php的计数器程序
- 计数器的 VHDL 程序
- 简单的计数器程序
- 操作系统-程序计数器
- Java虚拟机 程序计数器
- java 程序计数器
- java 程序计数器
- eclipse快捷键
- js变量、作用域和内存问题的复习**
- 解决不同编码的页面之间传值乱码的问题
- 接口抽象类
- DDMenuController抽屉遇到的问题
- 程序计数器(PC)
- java基础
- hdoj--5233--Gunner II(map+queue&&二分)
- c语言第一次作业
- 棋子翻转
- 学习笔记(二三)
- 程序员技术练级攻略
- ELK(七)ElasticSearch搜索
- 浅谈大数的进制转换