一、一条指令的执行
一条指令的执行:
(1)取指周期:取指令(所有指令都一样),译码
(2)间址周期 :取操作数
(3)执行周期 :执行指令 :①数据传送类指令:mov、Load、Store ②运算类指令(会改变数据的值) ③转移类指令:jmp、jxxx
(4)中断周期
1.取指阶段
取指阶段:把PC所指的指令取出来,取到IR
①PC→MAR
②M(MAR)→MDR
③MDR→IR
④PC + “1” → PC
注:
(1)"1"指当前指令的长度
(2)PC + “1”的实现方式:①ALU ②加法器 ③具有“自增功能”的寄存器
加法器是弱鸡版的ALU。ALU能实现加减乘除、移位、与或非运算,加法器只能实现加法运算。
2.执行阶段
(1)数据传送类指令
①寄存器→寄存器
②寄存器→主存
③主存→寄存器
④立即数→寄存器
⑤立即数→主存
⑥寄存器→暂存寄存器
注意1:若涉及主存,关注 读/写主存
(1)读主存:①地址→MAR ②M(MAR)→MDR ③MDR→目的地
(2)写主存:①地址→MAR ②数据→MDR ③MAR→M(MAR)