cpu指令运行说明
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
cpu指令运行说明
cpu指令运行说明一计算机每执行一条指令都可分为三个阶段进行。即取指令-----分析指令-----执行指令。
取指令的任务是:根据程序计数器pc中的值从程序存储器读出现行指令,送到指令寄存器。
分析指令阶段的任务是:将指令寄存器中的指令操作码取出后进行译码,分析其指令性质。如指令要求操作数,则寻找操作数地址。
计算机执行程序的过程实际上就是逐条指令地重复上述操作过程,直至遇到停机指令可循环等待指令。
一般计算机进行工作时,首先要通过外部设备把程序和数据通过输入接口电路和数据总线送入到存储器,然后逐条取出执行。但单片机中的程序一般事先我们都已通过写入器固化在片内或片外程序存储器中。因而一开机即可执行指令。
下面我们将举个实例来说明指令的执行过程:
开机时,程序计算器pc变为0000h。然后单片机在时序电路作用下自动进入执行程序过程。执行过程实际上就是取出指令(取出存储器中事先存放的指令阶段)和执行指令(分析和执行指令)的循环过程。
例如执行指令:mov a,#0e0h,其机器码为“74h e0h”,该指令的功能是把操作数e0h送入累加器,
0000h单元中已存放74h,0001h单元中已存放e0h。当单片机开始运行时,首先是进入取指阶段,其次序是:
1 程序计数器的内容(这时是0000h)送到地址寄存器;
2 程序计数器的内容自动加1(变为0001h);
3 地址寄存器的内容(0000h)通过内部地址总线送到存储器,以存储器中地址译码电跟,使地址为0000h的单元被选中;
4 cpu使读控制线有效;
5 在读命令控制下被选中存储器单元的内容(此时应为74h)送到内部数据总线上,因为是取指阶段,所以该内容通过数据总线被送到指令寄存器。至此,取指阶段完成,进入译码分析和执行指令阶段。
由于本次进入指令寄存器中的内容是74h(操作码),以译码器译码后单片机就会知道该指令是要将一个数送到a累加器,而该数是在这个代码的下一个存储单元。所以,执行该指令还必须把数据(e0h)从存储器中取出送到cpu,即还要在存储器中取第二个字节。其过程与取指阶段很相似,只是此时pc已为0001h。指令译码器结合时序部件,产生74h操作码的微操作系列,使数字e0h 从0001h单元取出。因为指令是要求把取得的数送到a累加器,所以取出的数字经内部数据总线进入a累加器,而不是进入指令寄存器。至此,一条指令的执行完毕。单片机中pc="0002h",pc 在cpu每次向存储器取指或取数时自动加1,单片机又进入下一取指阶段。这一过程一直重复下去,直至收到暂停指令或循环等待指令暂停。cpu就是这样一条一条地执行指令,完成所有规定cpu指令运行说明二首先,cpu的内部结构可以分为控制
单元,逻辑运算单元和存储单元(包括内部总线及缓冲器)三大部分。cpu的工作原理就像一个工厂对产品的加工过程:进入工厂的原料(程序指令),经过物资分配部门(控制单元)的调度分配,被送往生产线(逻辑运算单元),生产出成品(处理后的数据)后,再存储在仓库(存储单元)中
最后等着拿到市场上去卖(交由应用程序使用)。在这个过程中,我们注意到从控制单元开始,cpu就开始了正式的工作,中间的过程是通过逻辑运算单元来进行运算处理,交到存储单元代表工作的结束。我们知道,数据从输入设备流经内存,等待cpu的处理,这些将要处理的信息是按字节存储的,也就是以8位二进制数或8比特为1个单元存储,这些信息可以是数据或指令。数据可以是二进制表示的字符、数字或颜色等等。而指令告诉cpu 对数据执行哪些操作,比如完成加法、减法或移位运算。我们假设在内存中的数据是最简单的原始数据。首先,指令指针(instructionpointer)会通知cpu,将要执行的指令放置在内存中的存储位置。
因为内存中的每个存储单元都有编号(称为地址),可以根据这些地址把数据取出,通过地址总线送到控制单元中,指令译码器从指令寄存器ir中拿来指令,翻译成cpu可以执行的形式,然后决定完成该指令需要哪些必要的操作,它将告诉算术逻辑单元(alu)什么时候计算,告诉指令读取器什么时候获取数值,告诉指令译码器什么时候翻译指令等等。
假如数据被送往算术逻辑单元,数据将会执行指令中规定的算术运算和其他各种运算。当数据处理完毕后,将回到寄存器中,
通过不同的指令将数据继续运行或者通过db总线送到数据缓存器中。基本上,cpu就是这样去执行读出数据、处理数据和往内存写数据3项基本工作。
但在通常情况下,一条指令可以包含按明确顺序执行的许多操作,cpu的工作就是执行这些指令,完成一条指令后,cpu的控制单元又将告诉指令读取器从内存中读取下一条指令来执行。这个过程不断快速地重复,快速地执行一条又一条指令,产生你在显示器上所看到的结果。我们很容易想到,在处理这么多指令和数据的同时,由于数据转移时差和cpu处理时差,肯定会出现混乱处理的情况。为了保证每个操作准时发生,cpu需要一个时钟,时钟控制着cpu所执行的每一个动作。时钟就像一个节拍器,它不停地发出脉冲,决定cpu的步调和处理时间,这就是我们所熟悉的cpu的标称速度,也称为主频。主频数值越高,表明cpu的工作速度越快。
看了“cpu指令如何运行的”文章的