1.将PC中的地址送到MAR中,从内存中读取指令,将指令送到MDR中。 2.将PC加1,将MDR中的指令送到IR中,解码操作码和操作数寄存器。 3.将PC中的地址送到MAR中,从内存中读取源操作数地址,加上偏移量送到ADDR中。 4.将ADDR中的地址送到MAR中,从内存中读取源操作数,将源操作数送到MDR中。 5.将MDR中的源操作数加上目的操作数,将结果送到目的操作数寄存器中。 6.将PC中的地址送到MAR中,将指令中的目的操作数地址加上偏移量送到ADDR中。 7.将目的操作数寄存器中的数据送到MDR中。 8.将ADDR中的地址送到MAR中,将MDR中的数据存储到内存中。 9.将IR清零,指令执行完毕。写出上述的微程序和微代码
时间: 2024-03-04 08:52:35 浏览: 199
处理器微代码
以下是基于微指令的微程序:
微指令 | 控制信号
---|---
MI(Memory Address Register <- PC) | MAR_OUT <- PC, MDR_IN <- M[MAR_IN]
RI(Instruction Register <- MDR) | IR <- MDR_OUT
RO(Opcode Register <- IR[15:12], Address Register <- IR[11:0]) | OP <- IR[15:12], ADDR <- IR[11:0]
MA(Memory Address Register <- ADDR) | MAR_OUT <- ADDR
RM(Source Register <- MDR) | SRC <- MDR_OUT
MB(Memory Buffer Register <- MDR) | MDR_IN <- SRC + DST
RB(Destination Register <- MDR) | DST <- MDR_OUT
SA(Memory Address Register <- ADDR) | MAR_OUT <- ADDR
SB(Memory Buffer Register <- DST) | MDR_IN <- DST
OM(Operation Complete) | IR <- 0
以下是基于微指令的微代码:
微指令 | 微代码
---|---
MI | MAR <= PC, MDR <= M[MAR]
RI | IR <= MDR
RO | OP <= IR[15:12], ADDR <= IR[11:0]
MA | MAR <= ADDR
RM | SRC <= MDR
MB | MDR <= SRC + DST
RB | DST <= MDR
SA | MAR <= ADDR
SB | M[MAR] <= DST
OM | IR <= 0
阅读全文