问答题 某模型机的通路结构如下图所示,用寄存器传送语句(如PC→MAR),拟出下列指令从读取到执行的完整流程。
(1)数据传送指令MOV X(R0),Y(R1),源和目的操作数地址均采用变址寻址,第1个参数x为源操作数的形式地址,第2个参数为目的操作数的形式地址,分别位于指令的第2个和第3个存储字。
(2)数据求反指令COM-(R0),采用自减型寄存器间接寻址,结果送回自减后的地址单元。
【正确答案】[解答] (1)MOV X(R0),Y(R1)
①PC→MAR,Read;取指令
②M→MDR→IR
③PC+1→PC
④PC→MAR,Read;取源操作数形式地址
⑤M→MDR→C
⑥PC+1→PC
⑦C+R0→MAR,Read;形成源操作数有效地址,并取源操作数
⑧M→MDR→C;源操作数暂存C中
⑨PC→MAR,Read;取目的操作数形式地址
⑩M→MDR→D
PC+1→PC
D+R1→MAR;形成目的操作数有效地址
C→MDR;将源操作数送存储器数据寄存器
MDR→M,write;将源操作数写入目的有效地址中
(2)COM—(R0)
①PC→MAR,Read;取指令
②M→MDR→IR
③PC+1→PC
④R0—1→R。,R0—1→MAR,Read;修改R。的内容(源和目的操作数地址)
⑤M→MDR→D;取出源操作数
【答案解析】[解析] 数据传送指令占3个字,第1个字是操作码和寄存器编号;第2个字是参数X,为源操作数的形式地址;第3个字是参数Y,为目的操作数的形式地址,源和目的操作数地址均采用变址寻址,指令的含义是:((R0)+X)→(R1)+Y。
求反指令仅占1个字,自减型寄存器寻址是先修改寄存器的内容(—1),再取数。
[归纳总结] (1)MOV X(R0),Y(R1)
指令执行流程中的前3步是完成取指令的操作;接下来的5步是去主存中取源操作数,把取出的数放在暂存器C中;然后的4步是形成目的操作数地址;最后2步完成传送操作。
(2)COM—(R0)
指令执行流程中的前3步是取指令公操作;接下来的2步是去主存中取源操作数,把取出的数放在暂存器D中;然后将D的内容取反,写入目的地址中。
[解题技巧] 根据数据通路,写出指令执行的微操作序列。使用寄存器传送语句(如PC→MAR),比较直观。