计算机的工作过程
以該運算為例:
編譯裝入內存:
內部指令運行:
步驟如下:
初:(PC)=0,指向第一條指令的存儲地址
#1:(PC)——》MAR,導致(MAR)= 0
#3:M(MAR)——》MDR,導致(MDR)=000001 0000000101
#4:(MDR)——》IR,導致(IR)= 000001 0000000101
#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自動加一,(PC)=1;執行后,(ACC)=?2
#1:(PC)——》MAR,導致(MAR)=1
#3: M(MAR)——》MDR,導致(MDR)=000100 0000000110
#4:(MDR)——》IR,導致(IR)=000100 0000000110
#5:OP(IR)——》CU,指令的操作碼送到CU,CU分析后得知,這是“乘法”指令
#6:Ad(IR)——》MAR,指令的地址碼送到MAR,導致(MAR)=6
#8:M(MAR)——》MDR,導致(MDR)=000100 0000000110=3
#9:(MDR)——》MQ,導致(MQ)=000100 0000000110=3
#10:(ACC)——》X,導致(X)=2
#11:(MQ)*(X)——》ACC,由ALU實現乘法運算,導致(ACC)=6,如果乘積太大,如果乘積太大,則需要MQ輔助存儲。
上一條指令取指后PC自動加一,(PC)=2;.........................省略!
總結:
????????取指令:PC——》MAR——》M——》MDR——》IR
? ? ? ? 分析指令:OP(IR)——》CU
? ? ? ? 執行指令:Ad(IR)——》MAR——》M——》MDR——》ACC
總結