计算机执行程序原理(计算机工作原理和指令执行过程)
计算机执行程序原理(计算机工作原理和指令执行过程)
2024-11-22 10:51:27  作者:日霁云山晓  网址:https://m.xinb2b.cn/life/fjw228574.html
1 计算机工作原理

计算机的工作过程是将现实世界中的各种信息转换成计算机能够理解的二进制代码(信息编码),然后保存在计算机的存储器(数据存储)中,再由运算器对数据进行处理(数据计算)。在数据存储和计算过程中,需要通过线路将数据从一个部件传输到另外一个部件(数据传输)。数据处理完成后,再将数据转换成人类能够理解的信息形式(数据解码)。在以上工作过程中,信息如何编码和解码,数据存储在什么位置,数据如何进行计算等,都由计算机能够识别的机器指令(指令系统)控制和管理。

2 计算机指令系统

各计算机公司设计生产的计算机芯片,其指令的数量与功能、指令格式、寻址方式、数据格式都有差别,即使是一些常用的基本指令,如算术逻辑运算指令、转移指令等也是各不相同的。

为了缓解新机器的推出与原有应用程序的继续使用之间的矛盾,1964年在设计IBM360计算机时所采用的系列机思想较好地解决了这一问题。从此以后,各个计算机公司生产的同一系列的计算机尽管其硬件实现方法可以不同,但指令系统、数据格式、I/O系统等保持相同,因而软件完全兼容(在此基础上,产生了兼容机)。当研制该系列计算机的新型号或高档产品时,尽管指令系统可以有较大的扩充,但仍保留了原来的全部指令,保持软件向上兼容的特点,即低档机或旧机型上的软件不加修改即可在比它高档的新机器上运行,以保护用户在软件上的投资。

常见指令按功能可划分为:

①数据处理指令:包括算术运算指令、逻辑运算指令、移位指令、比较指令等。

②数据传送指令:包括寄存器之间、寄存器与主存储器之间的传送指令等。

③程序控制指令:包括条件转移指令、无条件转移指令、转子程序指令等。

④输入-输出指令:包括各种外围设备的读、写指令等。有的计算机将输入-输出指令包含在数据传送指令类中。

⑤状态管理指令:包括诸如实现置存储保护、中断处理等功能的管理指令。

计算机是通过执行指令来处理各种数据的。为了指出数据的来源、操作结果的去向及所执行的操作,一条指令必须包含下列信息:

(1)操作码。它具体说明了操作的性质及功能。一台计算机可能有几十条至几百条指令,每一条指令都有一个相应的操作码,计算机通过识别该操作码来完成不同的操作。

(2)操作数的地址。CPU通过该地址就可以取得所需的操作数。

(3)操作结果的存储地址。把对操作数的处理所产生的结果保存在该地址中,以便再次使用。

(4)下条指令的地址。执行程序时,大多数指令按顺序依次从主存中取出执行,只有在遇到转移指令时,程序的执行顺序才会改变。为了压缩指令的长度,可以用一个程序计数器(ProgramCounter,PC)存放指令地址。每执行一条指令,PC的指令地址就自动 1(设该指令只占一个主存单元),指出将要执行的下一条指令的地址。当遇到执行转移指令时,则用转移地址修改PC的内容。由于使用了PC,指令中就不必明显地给出下一条将要执行指令的地址。

一条指令实际上包括两种信息即操作码和地址码。操作码(OperationCode,OP)用来表示该指令所要完成的操作(如加、减、乘、除、数据传送等),其长度取决于指令系统中的指令条数。地址码用来描述该指令的操作对象,它或者直接给出操作数,或者指出操作数的存储器地址或寄存器地址(即寄存器名)。

指令包括操作码域和地址域两部分。根据地址域所涉及的地址数量,常见的指令格式有以下几种。

①三地址指令:一般地址域中A1、A2分别确定第一、第二操作数地址,A3确定结果地址。下一条指令的地址通常由程序计数器按顺序给出。

②二地址指令:地址域中A1确定第一操作数地址,A2同时确定第二操作数地址和结果地址。

③单地址指令:地址域中A 确定第一操作数地址。固定使用某个寄存器存放第二操作数和操作结果。因而在指令中隐含了它们的地址。

④零地址指令:在堆栈型计算机中,操作数一般存放在下推堆栈顶的两个单元中,结果又放入栈顶,地址均被隐含,因而大多数指令只有操作码而没有地址域。

⑤可变地址数指令:地址域所涉及的地址的数量随操作定义而改变。如有的计算机的指令中的地址数可少至 0个,多至6个。

3 程序运行时的内存原理

程序运行时,用于执行程序的内存区域大致可分为以下部分。


4 指令执行过程

整体的过程如下所述:


PC——Program Counter,程序计数器,存放当前欲执行指令的地址,并可自动计数形成下一条指令地址的计数器;

MAR——Memory Address Register,存储器地址寄存器,内存中用来存放欲访问存储单元地址的寄存器;

MDR——Memory Data Register,存储器数据缓冲寄存器,主存中用来存放从某单元读出、或写入某存储单元数据的寄存器;

IR——Instruction Register,指令寄存器,存放当前正在执行的指令的寄存器;

CU——Control Unit,控制单元(部件),控制器中产生微操作命令序列的部件,为控制器的核心部件;

ACC——Accumulator,累加器,运算器中运算前存放操作数、运算后存放运算结果的寄存器;

ALU——Arithmetic Logic Unit,算术逻辑运算单元,运算器中完成算术逻辑运算的逻辑部件;

MQ——Multiplier-Quotient Register,乘商寄存器,乘法运算时存放乘数、除法时存放商的寄存器。

X——此字母没有专指的缩写含义,可以用作任一部件名,在此表示操作数寄存器,即运算器中工作寄存器之一,用来存放操作数;

I/O——Input/Output equipment,输入/输出设备,为输入设备和输出设备的总称,用于计算机内部和外界信息的转换与传送;

也可以分为四个步骤去理解

I 取指令

CPU内部的指令寄存器IP保存着当前所处理指令的内存单元地址,通过地址总线,可以查找到指令在内存单元的位置,然后利用数据总线将内存单元的指令保存到高速缓存。


II 指令译码

译码单元解释指令的类型与内容,并且判定这条指令的作用对象(操作数),将操作数从内存单元读入高速缓存中。译码实际上就是将二进制指令翻译成特定的CPU电路微操作,然后由控制器传送给算术逻辑单元。


III 指令执行

控制器根据不同的操作对象,将指令送入不同的处理单元。如果是整数运算、逻辑运算、内存单元存取等一般控制指令,则送入ALU处理。如果操作对象是浮点数据(如三角函数运算),则送入浮点处理单元(FPU)进行处理。如果在运算过程中需要相应的用户数据,则CPU首先从数据高速缓存中读取相应的数据。如果高速缓存中没有用户需要的数据,则CPU通过数据通道,从内存中获取必要的数据,运算完成后输出运算结果。


VI 结果写回

将执行单元(ALU或EPU)的处理结果写回高速缓存或内存单元中。


解释和执行指令后,控制单元告诉指令寄存器从内存单元中读取下一条指令,循环上面的过程。

  • 联想手机为啥不火了(联想手机也火过)
  • 2024-11-22联想手机也火过曾经辉煌过的联想手机,作为国内第一出货量的手机品牌,期望可以和三星苹果竞争较量可惜由于手机业务战略的多次折腾导致手机命运多舛,最终跌落,再次重视手机业务时市场已经风云突变,早已非当日情景联想​联想的手。
  • 钓鱼 switch:钓鱼魂Switch版TVCM第一弹赏
  • 2024-11-22钓鱼 switch:钓鱼魂Switch版TVCM第一弹赏万代南梦宫近日公布了旗下捕鱼动作游戏新作《钓鱼魂Switch版》的TVCM第一弹,让我们一起来看看吧!《钓鱼魂》是日本一款人气街机体感型游戏,游戏特点是可以用体感模式逼真的还原钓鱼体验无论是大到可以吞。
  • 才知道茄子这样做不用炸不吸油(炒茄子不能先放油)
  • 2024-11-22炒茄子不能先放油大家好,我第一美食的阿飞,关注阿飞有更多的家常菜供大家参考!很多人喜欢吃茄子,但又因为茄子吸油而不敢放开的吃,今天,我就以我这么多年的厨师经验,给大家分享一下茄子不吸油、不发黑的方法,首先第一步茄子不。
  • switch游戏卡教程(Switch游戏卡回收技巧全攻略)
  • 2024-11-22Switch游戏卡回收技巧全攻略本内容来源于@什么值得买APP,观点仅代表作者本人|作者:孔大兰子大家好,我是爱和孩子一起玩游戏的大兰子,今天主要给大家介绍一些Switch游戏卡带的回收经验,因为家里有小朋友,亲戚朋友一起玩的时候,。
  • 猫咪为什么痴迷吃草(猫咪为什么会吃草)
  • 2024-11-22猫咪为什么会吃草标题:揭秘:猫咪为什么会吃草?难道它们是“素食主义”?一觉醒来,平时养的小花小草惨遭摧残,还以为家里进老鼠了呢结果竟然是猫咪所为,这家伙难道想出家当和尚了吗?相信这是很多小伙伴遭遇过的情况,同样身为铲。
  • 南极人的冲锋衣怎么样(南极人冲锋衣被曝不合格)
  • 2024-11-22南极人冲锋衣被曝不合格欧界报道:近两年,国货品牌崛起,但是做的最成功的国货,不是时尚界的李宁,也不是美妆界的完美日记,而是毫不起眼的"南极人"提起南极人,很多消费者的第一反映是:一个保暖内衣的品牌,那只能说。
  • 潮流情侣百搭鞋子(欧式平行大双适合她吗)
  • 2024-11-22欧式平行大双适合她吗出轨门事件后,花了1400万巨额公关费的李小璐出席中国国际时装周,虽是轻妆淡抹,但少女感十足,在人群里很是夺目李小璐坐在人群里,语笑嫣然,美目盼兮原来李小璐这么好看?你别不信,最近真的好看了李小璐出席。
  • 淘宝网中如何找人代付
  • 2024-11-22淘宝网中如何找人代付1.选择好宝贝后,点击【立即购买】,在提交订单页面底部找到【找人代付】,将前面的“√”选上;2.选择【找人代付】后,点击页面底部的【提交订单】按钮,提交订单,进入付款页面;3.在【找人代付】页面输入帮。
  • 拉卡拉pos机正规费率是多少(知名品牌拉卡拉)
  • 2024-11-22知名品牌拉卡拉大家常常辨别一个POS机好不好,都会以跳不跳码为基准,这个码就是MCC码,那么这个跳马又是什么意思?我们来看看热心市民王先生所提供的某知名品牌“拉*拉”Pos机的消费签购单图:从这个签购单,你能发现当。
  • 做红烧肉用这样的方法比饭店还香(在家做红烧肉想好吃)
  • 2024-11-22在家做红烧肉想好吃红烧肉是一道大众的菜肴,也算是一道家常菜中国有八大菜系,每个菜系都有关于红烧肉的做法,并且做出来的味道也稍微有些差别做红烧肉,用的原材料是五花肉,我们在购买五花肉时,要选用五花三层的来做,这样做出来的。
  • 百利甜酒兑什么最好喝(百利甜酒最好喝的兑法)
  • 2024-11-22百利甜酒最好喝的兑法百利甜+咖啡冲兑适量的咖啡(组好浓一点,才会有浓郁的咖啡气息)用吧勺或一般的勺子贴着杯子倒入百利甜酒就好了百利甜+冰很简单,加冰很爽百利甜+牛奶百利甜本身比较甜,加甜牛奶会更甜,不过喜甜的人试试很不错。