4.以下是模型机的汇编程序指令和对应的微指令功能 $P 00 A8 ;START:IN R0 从IN单元读入数据送 R0 $P 01 00 ; ADD R0,R0 R0 + R0 -> R0 $P 02 AC ; OUT R0 R0的值送OUT单元显示 $P 03 E7 JMP START 跳转至00H地址 $P 04 00 $uM 00 6F0ED001 ;取指(MEM->IR)、PC+1 $uM 08 3B0AF009 ;R0->A, uPC=09 $uM 09 5D0AF00A ;R0->B, uPC=0A $uM 0A 7E4AF800 ;A+B->R0, uPC=0 $uM 14 7F49C000 ;IN->R0, uPC=0 $uM 16 7D09A000 ;R0->OUT, uPC=0 $uM 4E 7F8AD000 ;MEM->PC, uPC=0 1)请分析该程序的功能,假设IN单元读入的是8位开关输入,输入值分别是00110011B和11001100B,OUT单元是2位数码管显示的16进制数,则会有怎样的输出结果。 2)请根据上表画出四条指令对应的微程序流程图,并分析执行一个循环过程中的微指令执行序列。
时间: 2024-02-16 11:02:28 浏览: 179
1)该程序的功能是将从IN单元读入的数据进行加法运算,然后将结果输出到OUT单元进行显示。具体的执行过程如下:
- 第一条指令将从IN单元读入的数据存储到R0中;
- 第二条指令将R0中的值与自身相加,结果仍然存储在R0中;
- 第三条指令将R0中的值输出到OUT单元进行显示;
- 第四条指令跳转回程序的起始地址,即第一条指令的位置,开始下一次循环。
假设输入值分别是00110011B和11001100B,则经过一次循环后,R0中的值为$00110011_2+00110011_2=01100110_2$,即十六进制表示为$36_{16}$,则OUT单元会显示$36_{16}$,接着程序会回到起始地址,再次读入输入值进行加法运算和输出。
2)微程序流程图如下:
![微程序流程图](https://img-blog.csdnimg.cn/20220701110544631.png)
在一个循环过程中,微指令的执行序列如下:
- 第一条指令(取指令):从存储器中读取指令并存储到IR寄存器中;
- 第二条指令(R0 -> A, uPC=09):将R0中的值传输到A寄存器中,并将uPC设置为09;
- 第三条指令(R0 -> B, uPC=0A):将R0中的值传输到B寄存器中,并将uPC设置为0A;
- 第四条指令(A+B -> R0, uPC=0):将A寄存器和B寄存器中的值相加,结果存储到R0中,并将uPC设置为0;
- 第五条指令(IN -> R0, uPC=0):从IN单元读入数据存储到R0中,并将uPC设置为0;
- 第六条指令(R0 -> OUT, uPC=0):将R0中的值输出到OUT单元进行显示,并将uPC设置为0;
- 第七条指令(MEM -> PC, uPC=0):从存储器中读取下一条指令的地址,并存储到PC寄存器中,并将uPC设置为0。
阅读全文