1、002ARoe,RD,DRce,PCincCC00000363003DRoe,IRce00000404004NOP.取源操作数为立即数的微程序00000A0850080054006GRSoe,TRce009015GRSoe,ARce00A01000B01200C01300D01700E2008001A01A00F2008001D01D027000119011INC,SVceSoe,GRSce00069016016ARoe,RD,DRCE,PCinc00069014014C0080015DRoe,ARce00061016ARoe,RD,DRceD0000006DRoe,TRce000690180
2、18C0080019019000610140006901B01BD400001C01CDRoe,Ace020GRSoe,ADD,SVce0006901E01ED400001F01FPCoe,ADD,SVceSoe,ARce.取目的操作数为寄存器寻址的微程序00000A28028007GRSoe,Ace02903502A030GRSoe,ARce,Ace02B0000000702C03302D03702E2008003A03A02F2008003D03D0270003103103200069034034C008003500061036036D400000700069038038C00800390
3、39000610340006903B03BD400003C03C0006903E03ED400003F03F.单操作数的微程序其中,运算指令如下:指令助记符入口地址Inc071HDec072HNot073H补全执行结果存入目的操作数的微程序4、输入调机程序INC FF02HDEC(0040H)JMP 0030H5、调试微程序。运行前的截图如下:运行后的截图如下:结果显示,LED输出寄存器自加成功,间接寻址的自减也正确第二天 :双操作数指令的微程序设计与调试 完成双操作数指令的微程序设计和验证;取源操作数阶段和取目的操作数阶段相关的寻址方式的微程序设计和验证二、运算指令微程序入口地址指令微程序入
4、口地址助记符操作码二进制十六进制MOC0001B001000001B041HADD0010B001000010B042HADDC0011B001000011B043HSUB0100B001000100B044HSUBB0101B001000101B045HAND0110B001000110B046HOR0111B001000111B047HXOR1000B001001000B048HCMP1001B001001001B049HTEST1010B001001010B04AH三、双操作指令微程序四、测试程序、数据及运行结果测试内容:MOV #0010H,R1MOV #0020H,R0SUB #FF
5、FFH,R1ADD 0010H,(R0)ADDC #FFFF,(0010H)运行结果:首先将数值移动进寄存器中:然后进行加减法的运算:五、设计中遇到的问题及解决办法调试双操作数指令执行微程序,先要写出双操作数指令执行微程序的微地址,微命令,然后写微程序,最后上机调试,判断是否正确,检查微程序运行结果是否正确是一项稍繁琐的事情,需要检查每步的寄存器、标志位、总线上的地址和数据。但经过几天的熟悉,我们已慢慢熟悉掌握。第三天:条件转移指令的微程序设计与调试为CPU扩充转移指令,完成转移指令的微程序设计与调试二、设计任务(1)根据第二章介绍的微地址形成方法,算出条件转移指令的微程序入口地址JC068H
6、JNC069HJO06AHJNO06BHJZ06CHJNZ06DHJS06EHJNS06FHJMP070H(2)转移指令的微程序设计第一天已经完成所有单操作入口的设计,其中068h-070h是转移指令的微程序补全其它操作:HALT:058HNOP:059H三、测试程序、数据及运行结果测试程序:0030H: MOV #0001H, R1CMP #0002H, R1JC 003AMOV #0001H, FF01HHALT003AH: MOV #0080H, FF01H无跳转:有跳转:运行前运行后:四、设计中遇到的问题和解决方法由于不是很理解转移指令的操作方式,导致了设计测试程序出现问题,后来经过同
7、学的指正,得出了以上三图第四天:移位指令的微程序设计与调试为CPU扩充移位指令,完成移位指令的微程序设计与调试二、单操作数运算和移位指令微程序入口地址入口地址:入口地址(H)SAR061SHL062SHR063ROL064ROR065RCL066RCR067三、单操作数和移位指令微程序设计微程序:移位运算微程序0030: 1601 MOV #0001H,R00031: 0001 0032: 00C0 SHR R00033: 0238 JC FFFDH(PC)0034: FFFD 0035: 0000 HALT运行前:由于操作设计简单,依照参考书和指导手册,并没有什么问题,同时我了解了移位类指令
8、的作用方式,位移指令对二进制进行操作,把目的操作数Dst按照与操作码OP对应的规则移动一位,保存移位结果到Dst,并保存移位产生的CF到PSW中。第五天:子程序调用、堆栈微程序、中断系统的设计与调试 完成CALL、RET、PUSH、POP、RETI、EI、DI指令的微程序的设计。二、PUSH、POP、CALL、RET指令微程序的设计PUSH0780030009B09BSVce6003009CA09CSoe,DRceF400009D709DSPoe,Ace02B0009E09EDEC,SVce7C080052052Soe,ARce,SPcePOPCALL微程序:RETRETIEI(05CH)、D
9、I(05DH)中断隐指令测试程序1: 1600 MOV #0041H,R0 0041 0060 PUSH R0 0620 PUSH 0040H 0040 0648 POP (R0)0036: 0641 POP R1运行结果及分析:测试程序2: 1600 MOV #0100H,0000H 0100 0000 0004 INC 0040H 0004 EI 0460 INC 0041H0037: 04100038: 04A0 DEC 0043H0039: 0043 003A: 1A01 MOV(0040H),R1003B: 0040003C: HALT: 0060: 1820 MOV FF0AH,F
10、F02H0061: FF0A 0062: FF020063: A260 TEST(R1),0040H0064:0065: 0003 RETI0100: 1620 MOV #0060H,0001H0101: 00600102: 00010103: 1820 MOV FF08H,FF02H0104: FF080105:0106: 0004 EI0107: 3820 ADDC 0040H,0043H0108: 00400109: 0043010A: 4820 SUB 0040H,0041H010B:010C: 0041010D: 0460 INC 0040H010E: 0044010F: 0003
11、RETI结果分析:执行INC 0040H按键请求中断,跳转到中断向量地址0100H,定义按键1为中断请求键,使红灯亮执行到0106单元再次跳转到0060H,红灯亮,执行 TEST操作,中断返回继续执行0107的ADDC操作,再进行SUB和INC的操作,中断返回回到0038H执行DEC操作,接下来进行MOV操作,停机运行成功四、设计中遇到的问题及解决办法写微指令时遇到许多问题,刚开始没弄明白各条指令的意思,然后经过同学的讲解,弄懂了各个指令的意思,通过参考书籍,成功的写出了各个指令的微程序。但是自己写出的调试程序执行后总会无限循环某几个指令,后来通过询问同学,获得了上面的调试程序,并且理解了这样
12、做的意义,最终运行成功。第六天检查和考核一、 设计目标1.将学号后两位保存2.对学号判断:小于30则为一班,同时将1压栈,红灯亮;大于等于30则为二班,同时将2压栈,绿灯亮二、 测试程序、数据及运行结果0030:1604; MOV #000BH,R40031:000B;0032: MOV #001FH,R3 001F;0034: MOV #0001H,R10035:0001;0036: MOV #0002H,R20037:0002;0038:9604; CMP R3,R40039:0260; JNC 0040H003A:0040;003B:0620; PUSH R2003C:1620; MOV
13、 R1,FF01H003D:FF01;003E:0000;0040: PUSH R10041: MOV R1,FF02H0042:FF02;0043:运行结果正确,但程序过于简洁总结: 这次关于微程序控制计算机微程序的课程设计,我受益匪浅,通过实验将实际问题和课本内容紧密的联系在一起,将知识运用到了实际之中,更加深入地掌握了微程序设计。实验过程中按照老师的计划,每天完成一定的量,使我们能够更加清晰的了解计算机内部组成以及数据通路,并且对实例化的语句有所了解,通过自己编写的程序能够实现运算、转移、移位等功能,让我进一步加深了对微程序各种功能的理解。实验中我们利用调试软件运行自己设计的程序,对自己
14、的程序产生的错误进行改正,这使我们对调试软件的工作方式及程序的设计有了进一步的掌握。 在每天的设计过程中我也遇到了很多问题,但是以前在学习中没有发现的。为此,我在通过仔细的研究课本及向老师和同学提问,拓宽了自己的知识面。同时也深感实践对于我们这门学科的重要性。同时,在经过老师的检查后发现自己在前面的实验中有些疏忽的问题,为此,在最后的两天时间里,对其进行了相应的修改,最后得以完美的测试结果。另一方面,通过本次课程设计能够联系之前的学习内容,发现自己在理解的基础上,实践能力得到了很大的提升。同时,也意识到自己存在的不足,在今后的学习中,一定要认真对待,学会多和同学交流,解决自身的知识盲点,让自己的学习能力得到强化。
copyright@ 2008-2022 冰豆网网站版权所有
经营许可证编号:鄂ICP备2022015515号-1