MOV指令的指令周期
取指周期
(1)程序计算器PC中装入第一条指令地址101(八进制)
(2)PC的内容被放到指令地址总线ABUS(I)上,对指存进行译码,并启动读命令
(3)从101号地址读出的MOV指令通过指令总线IBUS装入指令寄存器IR
(4)程序计算器内容加1,变成102,为取下一条指令做好准备
(5)指令寄存器中的操作码(OP)被译码
(6)CPU识别出是MOV指令。至此,取指周期结束。
执行周期
(1)操作控制器(OC)送出控制信号到通用寄存器,选择R1(10)作源寄存器,选择R0作目标寄存器
(2)OC送出控制信号ALU,指定ALU做传送操作
(3)OC送出控制信号,打开ALU输出三态门,将ALU输出送到数据总线DBUS上。注意,任何时候DBUS上只能有一个数据
(4)OC送出控制信号,将DBUS上的数据打入到数据缓冲寄存器DR(10)
(5)OC送出控制信号,将DR中数据10打入到目标寄存器R0,R0的内容由00变为10。至此,MOV指令执行结束。
LAD指令的指令周期
LAD指令的取指周期
PC提供的指令地址为102,按此地址从指令周期,读出“LDA R1,6”指令放入IR中,然后将PC+1,使PC内容变成103,为取下条ADD指令做好准备。
LAD指令的执行周期
操作控制器OC发出控制命令,打开IR输出三态门,将指令中的直接地址6放到数据总线DBUS上
OC发出操作命令,将地址码6装入数存地址寄存器AR
OC发出读命令,将数存6号单元中的数100读出道DBUS上
OC发出命令,将DBUS上的数据100装入缓冲寄存器DR
OC发出命令,将DR中的数100装入通用寄存器R1,原来R1中的数10被冲掉
ADD指令的执行周期
操作控制器OC送出控制命令到通用寄存器,选择R1做源寄存器,R2做目标寄存器;
OC送出控制命令到ALU,指定ALU做R1(100)和R2(20)的加法操作;
OC送出控制命令,打开ALU输出三态门,运算120放到DBUS上;
OC送出控制命令,将DBUS上数据打入缓冲寄存器;ALU产生的进位信号保存在状态字寄存器PSWR中;
OC送出控制命令,将DB(120)装入R2,R2中原来的内容20被冲掉。至此,ADD指令执行周期结束。
STO指令的执行周期
操作控制器OC送出操作命令到通用寄存器,选择(R3)=30做数据存储器的地址单元;
OC发出操作命令,打开通用寄存器输出三态门(不经ALU以节省时间),将地址30放到DBUS上;OC发出操作指令,将地址30打入AR,并进行数存地址译码;
OC发出操作命令到通用寄存器,选择(R2)=120,作为数存的写入数据;
OC发出操作命令,打开通用寄存器输出三态门,将数据120放到DBUS上;
OC发出操作命令,将数据120写入数存30号单元,它原先的数据40被冲掉,至此,STO指令执行周期结束。
JMP指令的执行周期
OC发出操作控制命令,打开指令寄存器IR输出三态门,将IR中的地址码101发送到DBUS上;
OC发出操作控制命令,将DBUS上的地址码101打入到程序计算器PC中,PC中的原先内容106被更换。于是下一条指令不是从106号单元取出,而是转移到101号单元取出。至此,JMP指令执行周期结束