一条计算机指令的执行过程

6 min read
我们要了解计算机指令的执行过程,首先要知道什么是计算机的硬件?计算机硬件是由哪些部分组成的?以及什么是计算机指令?

计算机的硬件

分类

计算机是由运算器、存储器、控制器、输入设备、输出设备五大部分组成。 image.png (点击查看大图) 405B1854.png (点击查看大图)下面我将详细的介绍各个硬件的功能和组成

运算器

image.png (点击查看大图)

运算器的功能

运算器的基本功能是完成对各种数据的加工处理,例如算术四则运算,与、或、求反等逻辑运算,算术和逻辑移位操作,比较数值,变更符号,计算主存地址等。 从图中我们可以看出来运算器是由ACC、ALU、X、MQ这四个寄存器组成,那么这些寄存器各自有什么功能呢?
  • ACC(累加器Accumulator):是一种寄存器,用来存储计算产生的中间结果,专门用来存放操作数或运算结果。
  • ALU(算数逻辑单元Arithmetic logic unit):是一种可对二进制整数执行算数逻辑运算或位运算的组合逻辑数字电路。
  • X:这里的X指的是操作数寄存器,用于存储待操作的数据。
  • MQ(乘商寄存器multiplier-quotient register):在乘法运算时可以寄存乘数,而在除法运算时可以寄存商数的寄存器。
基本操作过程表:
在这里插入图片描述 (点击查看大图)

① 加法操作

image.png (点击查看大图)

② 减法操作

image.png (点击查看大图)

③ 乘法操作

image.png (点击查看大图)

④ 除法操作

image.png (点击查看大图)

控制器

image.png (点击查看大图)

控制器的功能

  • 解释指令
  • 保证指令的按序进行
image.png (点击查看大图)
  • PC:存放当前欲执行指令的地址具有计数功能(PC)+1 → PC
  • IR:存放当前欲执行的指令
那么什么是指令呢?计算机技术中,指令是由指令集架构定义的单个的CPU操作。在更广泛的意义上,“指令”可以是任何可执行程序的元素的表述,例如字节码image.png (点击查看大图) 而我们的指令又存储在存储器的存储单元里面。

存储器

image.png (点击查看大图)
  • 存储体:是由若干个存储单元组成,而存储单元是一个存储一位二进制信息的电子电路
  • MAR:存储地址寄存器(单元的个数)
  • MDR:存储数据寄存器(和存储单元的长度相同)

存储器的功能

  • 数据存储
  • 程序执行
  • 数据交换
  • 数据持久性

主机完成一条指令的过程

以取数指令为例: image.png (点击查看大图) 操作步骤:
  1. 将PC中的地址传递给MAR寄存器
  2. 由MAR将地址送给存储体,在控制器的控制下将存储体的取数指令取出来。
  3. 将存储体的取数指令送入到MDR寄存器中。
  4. 将取出的指令送入到IR寄存器中
  5. 将IR中指令的操作码部分(op)送入CU控制单元进行分析。
  6. 将IR中指令的地址码部分(A)送入MAR寄存器中
  7. 由MAR将要取数的地址传给存储体
  8. 存储体将要取的数传给MDR寄存器中
  9. 将MDR中的数据传入ACC寄存器中
以存数指令为例: image.png (点击查看大图) 操作步骤:
  1. 将PC中的地址传入MAR寄存器中
  2. 由MAR将地址传入存储体中,在控制器的控制下,将存储器的存数指令取出来。
  3. 将存储体的存数指令送入到MDR寄存器中。
  4. 将取出的指令送入到IR寄存器中
  5. 将IR中指令的操作码部分(op)送入CU控制单元进行分析。
  6. 将IR中指令的地址码部分(A)送入MAR寄存器中
  7. 由MAR将要存数的地址传给存储体
  8. 将ACC中的内容送入到MDR寄存器中
  9. 在控制器的控制下,将MDR中的数据保存在存储体中

程序的运行过程

  • 将程序通过输入设备送至计算机
  • 程序首地址 → PC
  • 启动程序运行
  • 取指令PC → MAR → M → MDR → IR ,(PC)+ 1 → PC
  • 分析指令OP(IR)→ CU
  • 执行指令Ad(IR)→ MAR → M → MDR → ACC
  • ……
  • 打印结果
  • 停机

评论

一条计算机指令的执行过程 | Niutr's Blog | Niutr's Blog