1、计算机组成原理课程设计微程序设计计算机组成原理课程设计报告 微程序设计 指导老师: 丁 伟 学院: 计算机学院 班级: 软件 1501 姓名: 学号: 一、项目任务本项目的任务是针对第2章所述的OpenJUC-II教学机模型机,设计控制器的微程序,实现该模型机的指令系统。通过课程设计理解指令的执行过程,指令系统与硬件的关系,进而加深对计算机的结构和工作原理的理解。二、项目设计本项目预期分为6个上机设计步骤:Day1:熟悉微程序的设计和调试方法Day2:双操作数指令的设计与调试Day3:条件转移指令的设计与调试Day4:移位指令的设计与调试Day5:堆栈相关指令的设计与调试Day6:中断系统的设
2、计与调试通过上述实践步骤,初步达成微程序设计要求,针对不同产品提出的不同要求,通过编写相应符合的微程序汇编指令,达到预期效果和收益。三、项目需求OpenJUC-II模型机、Quartus II软件、虚拟实验板软件、Windows计算机、预先编写完成的.sof和.scc文件。取指令字段 取源操作数取目的操作数阶段从微地址028至02F依次为寄存器寻址,寄存器间接寻址,寄存器自增间接寻址,02B为空,直接寻址,间接寻址,变址寻址,相对寻址从41开始为MOV,ADD,ADDC,SUB,SUBB,AND,OR,XOR,CMP,TEST的入口地址 保存结果的控存SAR,SHL,SHR,ROL,ROR,R
3、CL,RCR控存JC,JNC,JO,JNO,JZ,JNZ,JS,JNS控存转移的控存JMP,INC,DEC,NOT的控存PUSH,POP,CALL的控存HALT,NOP,RET,RETI,EI,DIINC与JMP设计与调试。ORG 0030HINC 0040HJMP 0030HMOV,SUB调试CMP及JC测试软件延时0030: 0460 INC FF02H0031: FF020032: 1600 MOV #000F, R00033: 000F0034: 0440 INC R00035: 9600 CMP #FFFFH, R00036: FFFF0037: 0220 JC 0030H0038:
4、 00300039: 0260 JNC 0034H003A: 0034003B: HALT 右移0030: 1601 MOV #0001H, R00031: 00010032: 00C0 SHR R00033: 0238 JC FFFDH(PC)0034: FFFD0035: 0000 HALT左移0030: 1601 MOV #0505H, R00031: 00010032: 00C0 TEXT #0001H,R10033: 0238 0034: FFFD JZ 3(PC)0035: 0000 0036:0101 ROL R10037:0420 JMP 0032流水灯设计0030: 1620
5、 MOV #0080H, FF01H0031: 00800032: FF010033: 1600 MOV #0000H, R00034: 00000035: 0440 INC R00036: 9600 CMP #FFFFH, R00037: FFFF0038: 0220 JC 003CH0039: 003C003A: 0260 JNC 0035H003B: 0035003C: 0160 ROR FF01H003D: FF01003E: A620 TEST #FFFFH, FF01H003F: FFFF0040: FF010041: 0320 JZ 0030H0042: 00300043: 03
6、60 JNZ 0033H0044: 00330045: 0000 HALTPUSH,POP0030: 1600 MOV #0041H,R00031: 00410032: 0060 PUSH R00033: 0620 PUSH 0040H0034: 00400035: 0648 POP (R0)0036: 0641 POP R1程序中断0030: 1600 MOV #0100H, 0000H0031: 00400032: 00000033: 0004 EI0034: 0460 INC 0040H0035: 00400036: 1601 MOV #2333H, R10037: 23330038: 0000 HALT0100: 1820 MOV #FF08H, FF02H0101: FF08结课任务将R2的内容左右颠倒存入R7(A1A2A3A4-A4A3A2A1)总体设计及总结成功完成了对JUC2的整体设计。包括取指令,取目的(源)操作数,保存结果,转移指令,移位指令,堆栈相关指令设计,中断设计等。熟练掌握了微程序设计的基本思想和实现方法。理解指令执行过程,指令系统与硬件的关系,加深了对计算机的结构和工作原理的理解。