【计算机组成原理】计算机工作过程

本文详细阐述了计算机如何将高级语言编写的程序转化为机器语言并执行的过程,包括取指、分析指令和执行指令的步骤。通过示例展示了取数、乘法、加法和存数指令的执行,揭示了指令和数据在存储器中的存储方式以及PC自动加1的机制。最后,解释了停机指令的执行和中断机制。
摘要由CSDN通过智能技术生成

【计算机组成原理】计算机工作过程
高级语言

int a = 2,b = 3,c = 1,y = 0;
void main(){
	y = a*b+c;
}

编译装入主存转化为机器语言
在这里插入图片描述
在这里插入图片描述
初始:(PC)=0,指向第一条指令的存储地址
#1: (PC)->MAR,导致(MAR)=0
#3: M(MAR)->MDR,导致(MDR)=0000010000000101
#4: (MDR)->IR,导致(IR)=0000010000000101
#5: OP(IR)->CU,指令的操作码送到CU,CU分析后得知,这是取数指令
#6: Ad(IR)->MAR,指令的地址码送到MAR,导致(MAR)=5
#8: M(MAR)->MDR,导致(MDR)=0000000000000010=2
#9: (MDR)->ACC,导致(ACC)=0000000000000010=2

取指令(#1~#4)
分析指令(#5)
执行取数指令(#6~#9)
在这里插入图片描述
上一条指令取指后PC自动加1,(PC)=1;执行后(ACC)=2
#1: (PC)->MAR,导致(MAR)=1
#3: M(MAR)->MDR,导致(MDR)=0001000000000110
#4: (MDR)->IR,导致(IR)=0001000000000110
#5: OP(IR)->CU,指令的操作码送到CU,CU分析后得知,这是乘法指令
#6: Ad(IR)->MAR,指令的地址码送到MAR,导致(MAR)=6
#8: M(MAR)->MDR,导致(MDR)=0000000000000011=3
#9: (MDR)->MQ,导致(MQ)=0000000000000010=3
#10: (ACC)->X,导致(X)=2
#11: (MA)*(X)->ACC,由ALU实现运算,导致(ACC)=6,如果乘积太大,则需要MQ辅助存储

取指令(#1~#4)
分析指令(#5)
执行乘法指令(#6~#11)
在这里插入图片描述
上一条指令取指后PC自动加1,(PC)=2;执行后(ACC)=6
#1: (PC)->MAR,导致(MAR)=2
#3: M(MAR)->MDR,导致(MDR)=0000110000000111
#4: (MDR)->IR,导致(IR)=0000110000000111
#5: OP(IR)->CU,指令的操作码送到CU,CU分析后得知,这是加法指令
#6: Ad(IR)->MAR,指令的地址码送到MAR,导致(MAR)=7
#8: M(MAR)->MDR,导致(MDR)=0000000000000001=1
#9: (MDR)->X,导致(X)=0000000000000001=1
#10: (ACC)+(X)->ACC,导致(ACC)=7

取指令(#1~#4)
分析指令(#5)
执行加法指令(#6~#10)

在这里插入图片描述
上一条指令取指后PC自动加1,(PC)=3;执行后(ACC)=7
#1: (PC)->MAR,导致(MAR)=3
#3: M(MAR)->MDR,导致(MDR)=0000100000001000
#4: (MDR)->IR,导致(IR)=0000100000001000
#5: OP(IR)->CU,指令的操作码送到CU,CU分析后得知,这是存数指令
#6: Ad(IR)->MAR,指令的地址码送到MAR,导致(MAR)=8
#7: (ACC)->MDR,导致(MDR)=7
8号存储单元变为0000000000000111

取指令(#1~#4)
分析指令(#5)
执行存数指令(#6~#7)

在这里插入图片描述
上一条指令取指后PC自动加1,(PC)=4
#1: (PC)->MAR,导致(MAR)=4
#3: M(MAR)->MDR,导致(MDR)=0001100000000000
#4: (MDR)->IR,导致(IR)=0001100000000000
#5: OP(IR)->CU,指令的操作码送到CU,CU分析后得知,这是停机指令
利用中断机制通知操作系统终止该进程

以上也可以看出,指令和数据以同等地位(16bit)存于存储器,可按地址寻访

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值