当前位置:首页 > 微指令设计
R0= F080
(7)设计一条指令,实现的功能是: 当DR=SR时,原PC(IP)+OFFSET→PC;
当DR 设计分析 1) 100:另DR-SR并让各个标志位接受ALU的状态标志; 2)101:PC→AR,将OFFSET的地址送到AR中,然后根据标志位判断,如果零标志位等于1,说明DR=SR,利用下地址字段给出跳转的地址104; 3)102:若零标志位不为1,则由顺寻执行到此处。根据负标志位判断,若为1,则说明DR 4)103:若102和103中的条件判断都不成立,即DR>SR,则用PC+1→PC顺序执行下一条汇编指令; 5)104:由101跳转至此后,用IP+OFFSET(MEM)→PC将ADDR送到PC中完成转移; 6)105:由102跳转至此后,用ADDR(MEM)→PC完成转移。 3. 微程序 100:DR-SR;接受标志: 0000 0E01 9110 0088 101:PC->AR,DR=SR时跳到104: 0041 0370 9030 5002 102:PC->AR, PC+1->PC,DR (2) 加载到微控存程序段 4. 加载到微控存程序段 说明:微码存放在900H(或某内存单元)开始的内存单元中 >A800↙ 0800:MOV R1,900 0804:MOV R3,100 0806:LDMC 0807:RET 0808: 5. 运行程序段 >A820↙ 0820:MOV R7,7 0822:MOV R8,8 0824:MOV R0,0 ;微码在内存中的首地址 ;微码在微控存中的首地址 ;加载微码指令 0802:MOV R2,6 ;微指令条数 0029 0300 B030 5400 0029 0300 30D6 5000 0029 0300 30F0 5000 指令格式 D4 DR SR OFFSET ADDR 指令格式: 105:ADDR(MEM)->PC: 0826:NOP 0827: NOP 0828:NOP 0829: NOP 082A:MOV R0,4444 082C: RET 082D: MOV R0,5555 082F: RET 0830: MOV RO,7777 0832: RET >E826↙ 然后输入以下内容: D478 0007 0830 6. 运行结果 1)R7=7,R8=8 >G820↙ 用R命令查看运算结果 R0=7777 (成功跳转至0830处) 2)>E821 输入 0008 (即R7=8,R8=8) >G820↙ 用R命令查看运算结果 R0=5555 (成功跳转至IP+OFFSET即082D处) 3)>E821 输入 0009 (即R7=9,R8=8) >G820↙ 用R命令查看运算结果 R0=4444 (成功执行下一条指令,即082A处) (8)设计一条指令,以实现将SR内容与内存单元ADDR的内容相加,结果存到ADDR单元中。 1.指令功能 功能:[ADDR]+SR→[ADDR] 2.指令格式 指令格式: ADDR 3.设计分析 根据实验册Page45后的<<微指令分析及功能描述表根据指令的功能和指令格式,在读取地址ADDR单元内容后暂时放置于Q寄存器中,然后将SR(R8)与Q寄存器内容相加,其结果也暂存放在Q寄存器中,此时,由于地址寄存器AR中存放的恰好是地址ADDR,因此只要将Q寄存器内容写入存储器就可以完成所需的指令功能。 4.微程序 100:PC→AR,PC+1→PC: 0000 0E 00 A0 B5 54 02 D4 0 SR 101:MEM→AR: 102:MEM→Q: 103:Q+SR→Q: 0000 0E 00 0000 0E 00 0000 0E 01 10 F0 00 02 00 F0 00 00 80 80 00 80 104:Q→MEM,CC#=0: 5.加载到微控存程序段 0029 03 00 10 20 00 10 (一)用”A”命令输入加载微码的程序 在命令行提示符状态下输入: >A800↙ 0800:MOV R1,900 0802:MOV R2,5 0804:MOV R3,100 0806:LDMC 0807:RET 0808: (二)用”G”命令运行加载微码的程序 在命令行提示符状态下输入: >G800 微码便装入起始地址为100H的微控存中. 6.输入程序并运行新命令 (一)用”A”命令输入程序 在命令行提示符状态下输入: >A820 0820:MOV R0,0011 0822:MOV R8,0001 0824:MOV [0890],R0 0826:NOP 0827:NOP 0828:RET (二)用”E”命令输入新指令 在命令行提示符状态下输入: >E826 0826: D400 0890 0891 7.用”G”命令运行程序 在命令行提示符状态下输入 >G820 然后用”D”命令察看运行结果 在命令行提示符状态下输入: >D890 屏幕将显示: 0890 0012 0891单元为0012,即为正确的运算结果. (9)设计一条符号扩展指令 1.指令功能 ;微码在内存中的首地址 ;微指令条数 ;微码在微控存中的首地址 ;加载微码指令 功能: DR 符号扩展→ DR 2.指令格式 指令格式: 3.设计分析 根据指令的功能和指令格式: (1)对寄存器保存的低位字节的8位有符号补码数进行逻辑左移操作,左移9位,空出的低位补0; (2)对其进行算术右移操作,右移9位,空出的高位用最高位(符号位)填补,这样即可将其扩展为16位D8 DR 0 的同值补码数; (3)结果仍保存在原寄存器中,完成指令功能; 4.微程序 100:R/C=8: 0002 0400 101:DR→DR逻辑左移9次: 0000 0806 102:R/C=8: 0002 0400 103:DR→DR算术右移9次,CC#=0: 0029 0F20 5.加载到微控存程序段 (一)用”A”命令输入加载微码的程序 在命令行提示符状态下输入: >A800 0800:MOV R1,900 ;微码在内存中的首地址 0802:MOV R2,4 ;微指令条数 0804:MOV R3,100 ;微码在微控存中的首地址 0806:LDMC ;加载微码指令 0807:RET 0808: (二)用”G”命令运行加载微码的程序 在命令行提示符状态下输入: >G800 微码便装入起始地址为100H的微控存中. 6.输入程序并运行新命令 (一)用”A”命令输入程序 在命令行提示符状态下输入: >A820 0820:MOV R9,00FF 0822:NOP 0823:RET (二)用”E”命令输入新指令 在命令行提示符状态下输入: >E822 然后输入以下内容: D890 7.察看运行结果 >G820 >R R9=FFFF 8030 0000 F030 0208 8030 0000 D030 0108
共分享92篇相关文档