具体写明微指令设计的微指令地址、控制信号、功能,以及对应的测试数据
时间: 2024-04-02 16:35:37 浏览: 51
运动会分数统计系统数据结构课程设计论文
4星 · 用户满意度95%
好的,以下是针对每个指令的微程序设计、微指令地址、控制信号、功能及对应的测试数据:
(1)加法指令微程序设计:
微指令地址 控制信号 功能
0 MAR <- SR 将SR的内容送到地址寄存器MAR中
1 MDR <- DISP 将偏移量DISP送到MDR中
2 MDR <- MDR + MAR 将MDR和MAR中的内容相加
3 MAR <- MDR 将MDR的内容送到MAR中
4 MDR <- [MAR] 将MAR地址单元的内容送到MDR中
5 MDR <- MDR + [DR] 将MDR和DR中的内容相加
6 [DR] <- MDR 将MDR的内容送到DR中
7 PC <- PC + 1 程序计数器PC加1,指向下一条指令
测试数据:
假设初始时DR=0001H,SR=0100H,[0100H]=0005H,[0001H]=0002H,DISP=0100H,程序计数器PC=0100H。执行D5DRSR,DISP指令后,[0001H]应该等于0007H,PC应该指向下一条指令,即0101H。
(2)传送指令微程序设计:
微指令地址 控制信号 功能
0 MAR <- ADDR2 将ADDR2的内容送到MAR中
1 MDR <- [MAR] 将MAR地址单元的内容送到MDR中
2 MAR <- ADDR1 将ADDR1的内容送到MAR中
3 [MAR] <- MDR 将MDR的内容送到MAR地址单元中
4 PC <- PC + 1 程序计数器PC加1,指向下一条指令
测试数据:
假设初始时[0002H]=0123H,[0000H]=0456H,程序计数器PC=0110H。执行D8XX,ADDR1,ADDR2指令后,[0002H]应该等于[0000H],PC应该指向下一条指令,即0111H。
(3)转移指令微程序设计:
微指令地址 控制信号 功能
0 MDR <- [SR] 将SR的内容送到MDR中
1 MDR1 <- [DR] 将DR的内容送到MDR1中
2 MDR2 <- DISP 将偏移量DISP送到MDR2中
3 ALU <- MDR - MDR1 将MDR和MDR1相减
4 if ALU = 0 then PC <- (IP) + MDR2 else PC <- PC + 1 判断ALU是否等于0,若相等则跳转到(IP)+MDR2,否则指针指向下一条指令
测试数据:
假设初始时[0001H]=0002H,程序计数器PC=0130H。执行E1DRSR,DISP指令后,由于[0001H]的值等于自身的值,所以程序应该跳转到(IP)+0100H地址单元执行指令,PC应该指向0131H。
阅读全文