. . .
..........
《计算机组成原理》课程设计报告
——微程序设计
指导老师: 丁 伟
学院: 计算机学院
班级: 软件 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