《计算机组成原理》课程设计报告
——微程序设计
指导老师:**
学院:计算机学院
班级:软件 1501
姓名:
学号:
一、项目任务
本项目的任务是针对第2章所述的OpenJUC-II教学机模型机,设计控制器的微程序,实现该模型机的指令系统。
通过课程设计理解指令的执行过程,指令系统与硬件的关系,进而加深对计算机的结构和工作原理的理解。
二、项目设计
本项目预期分为6个上机设计步骤:
Day1:熟悉微程序的设计和调试方法
Day2:双操作数指令的设计与调试
Day3:条件转移指令的设计与调试
Day4:移位指令的设计与调试
Day5:堆栈相关指令的设计与调试
Day6:中断系统的设计与调试
通过上述实践步骤,初步达成微程序设计要求,针对不同产品提出的不同要求,通过编写相应符合的微程序汇编指令,达到预期效果和收益。
三、项目需求
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,RCL,RCR控存
JC,JNC,JO,JNO,JZ,JNZ,JS,JNS控存
转移的控存
JMP,INC,DEC,NOT的控存PUSH,POP,CALL的控存
HALT,NOP,RET,RETI,EI,DI
INC与JMP设计与调试。
ORG 0030H
INC 0040H
JMP 0030H
MOV,SUB调试
CMP及JC测试
软件延时
0030: 0460 INC FF02H 0031: FF02
0032: 1600 MOV #000F, R0 0033: 000F
0034: 0440 INC R0
0035: 9600 CMP #FFFFH, R0 0036: FFFF
0037: 0220 JC 0030H 0038: 0030
0039: 0260 JNC 0034H 003A: 0034 003B:
HALT
右移
0030: 1601 MOV #0001H, R0 0031: 0001
0032: 00C0 SHR R0
0033: 0238 JC FFFDH(PC) 0034: FFFD
0035: 0000 HALT
左移
0030: 1601 MOV #0505H, R0 0031: 0001
0032: 00C0 TEXT #0001H,R1 0033: 0238
0034: FFFD JZ 3(PC)
0035: 0000
0036:0101 ROL R1
0037:0420 JMP 0032
流水灯设计
0030: 1620 MOV #0080H, FF01H 0031: 0080
0032: FF01
0033: 1600 MOV #0000H, R0 0034: 0000
0035: 0440 INC R0
0036: 9600 CMP #FFFFH, R0 0037: FFFF
0038: 0220 JC 003CH
0039: 003C
003A: 0260 JNC 0035H
003B: 0035
003C: 0160 ROR FF01H
003D: FF01
003E: A620 TEST #FFFFH, FF01H 003F: FFFF
0040: FF01
0041: 0320 JZ 0030H
0042: 0030
0043: 0360 JNZ 0033H 0044: 0033
0045: 0000 HALT
PUSH,POP
0030: 1600 MOV #0041H,R0 0031: 0041
0032: 0060 PUSH R0
0033: 0620 PUSH 0040H 0034: 0040
0035: 0648 POP (R0)
0036: 0641 POP R1
程序中断
0030: 1600 MOV #0100H, 0000H 0031: 0040
0032: 0000
0033: 0004 EI
0034: 0460 INC 0040H
0035: 0040
0036: 1601 MOV #2333H, R1 0037: 2333
0038: 0000 HALT
0100: 1820 MOV #FF08H, FF02H 0101: FF08
结课任务
将R2的内容左右颠倒存入R7(A1A2A3A4------A4A3A2A1)
总体设计及总结
成功完成了对JUC2的整体设计。
包括取指令,取目的(源)操作数,保存结果,转移指令,移位指令,堆栈相关指令设计,中断设计等。
熟练掌握了微程序设计的基本思想和实现方法。
理解指令执行过程,指令系统与硬件的关系,加深了对计算机的结构和工作原理的理解。