PC 一条一条往前走
运行下面这段程序,填写它打印出来的结果。 pc = 0 seen = "" for _ in range(4): seen = seen + str(pc) pc = pc + 1 print(seen
自己写:一个寄存器堆
补全 RegFile:两个寄存器,写进去的值一律截成八位。
自己写:取指并让 PC 前进
补全 fetch:从程序里取出 PC 指着的那条指令,取完之后 PC 加一,返回取到的那条。
三个阶段的先后
一条指令的执行分成三步,顺序是【0】。
取指的地址从哪来
取指阶段要去内存里拿一条指令,地址是【0】给的。
译码在干什么
译码这一步做的事是【0】。
为什么要分成三步
把一条指令拆成三个阶段来做,好处是【0】。
一条指令走完三拍
运行下面这段程序,填写它打印出来的结果。 PROG = [0b00001001, 0b01000111, 0b10000011, 0b11000000] def decode(w): return (w >> 6) &
四条指令的 PC 轨迹
运行下面这段程序,填写它打印出来的结果。 PROG = [0b00001001, 0b01000111, 0b10000011, 0b11000000] def decode(w): return (w >> 6) &
自己写:译码器
补全 decode:把八位切成操作码(高 2 位)、寄存器号(第 5 位)、立即数(低 5 位)三段。用两条指令各译一次。