复杂模型机方案合肥工业大学计算机组成课程方案报告.docx
《复杂模型机方案合肥工业大学计算机组成课程方案报告.docx》由会员分享,可在线阅读,更多相关《复杂模型机方案合肥工业大学计算机组成课程方案报告.docx(13页珍藏版)》请在冰豆网上搜索。
复杂模型机方案合肥工业大学计算机组成课程方案报告
课程设计报告
一.设计目的
本课程设计是《计算机组成原理》课程之后开设的实践环节课程。
通过本课程设计,使学生进一步加深对计算机原理系列课程相关内容的理解,掌握CPU设计的基本方法和计算机系统的组成原理,进一步巩固所学的理论知识,提高运用所学知识分析和解决实际问题的能力;锻炼计算机硬件的设计能力、调试能力;培养严谨的科学实验作风、良好的工程素质及团队协作精神,为今后的工作打下基础。
二.设计题目
复杂模型机设计
三.设计要求
基于计算机组成原理教案实验系统设计并实现一个具有16条机器指令、采用微程序控制器的8位计算机。
具体要求做到:
1.根据设计课题要求,给出模型机的设计方案<包括指令系统和硬件结构)。
2.画出所设计计算机的硬件连接图,针对所设计的指令系统编写出相应的微程序。
3.对所设计的计算机进行安装与调试。
4.编写测试程序,对系统进行验证。
5.编写课程设计报告。
四.实验设备
Dais-CMX16+计算机组成原理教案实验系统一台,PC机一台
五.指令格式与指令系统
模型机设计四大类之类指令共16条,其中包括算术逻辑指令、I/O指令、访问及转移指令和停机指令。
⑴算术逻辑指令
设计9条算术逻辑指令并用单字节表示,寻址方式采用寄存器直接寻址,其格式如下:
7654
32
10
OP-CODE
Rd
Rs
其中,OP-CODE为操作码,Rs为源寄存器,Rd为目的寄存器,并规定:
Rs或Rd
选定的寄存器
00
01
10
11
R0
R1
R2
R3
9条算术逻辑指令的名称、功能和具体格式见表7-12-1。
⑵访问指令及转移指令
模型机设计2条访问指令,即存数位转移指令7
6
54
32
10
0
0
M
2OP-CODE
Rd
D<低八)
D<高八)
其中“00M”为源码段,2OP-CODE为目的码段D为十六位地址段<低八在前,高八随后),M为源寻址模式,其定义如下:
寻址模式M
有效地址E
说明
00
01
10
11
E=D
E=(D>
E=(SP>+D
E=(PC>+D
直接寻址
间接寻址
SP变址寻址
相对寻址
⑶I/O指令
输入7654
32
10
OP-CODE
00
Rd
⑷停机指令
指令格式如下:
7654
32
10
OP-CODE
00
00
HALT指令,用于实现停机操作。
1>指令系统
本模型机共有16条基本指令,其中算术逻辑指令7条,访问内存指令和程序控制指令4条,输入输出指令2条,其它指令1条。
下表列出了各条指令的格式、汇编符号、指令功能。
助记符
指令格式
功 能
LDAM,D,Rd
0
0
M
00
Rd
E→Rd
STAM,D,Rd
0
0
M
01
Rd
Rd→E
JMPM,D
0
0
M
10
00
E→PC
BZCM,D
0
0
M
11
00
当CY=0或Z=0时,E→PC
MOVRd,Rs
0
1
0
0
Rs
Rd
Rs→Rd
ADCRd,Rs
0
1
0
1
Rs
Rd
Rs+Rd+CY→Rd
SBCRd,Rs
0
1
1
0
Rs
Rd
Rs-Rd-CY→Rd
ANDRd,Rs
0
1
1
1
Rs
Rd
Rs∧Rd→Rd
CLRRd
1
0
0
0
00
Rd
0→Rd
INCRd,Rs
1
0
0
1
00
Rd
Rs+1→Rd
CPLRd
1
0
1
0
00
Rd
Rd→Rd
RHRRd
1
0
1
1
00
Rd
Rd→Rd
RHLRd
1
1
0
0
00
Rd
Rd→Rd
INRd,I/O
1
1
0
1
00
Rd
I/O→Rd
OUTRd,I/O
1
1
1
0
00
Rd
Rd→I/O
HALT
1
1
1
1
00
00
停机
2>复杂模型机指令系统
。
助记符操作数指令码长度
。
-----------------------------------------------------
LDADR0,*003。
直接字节送寄存器R0
LDADR1,*013。
直接字节送寄存器R1
LDADR2,*023。
直接字节送寄存器R2
LDADR3,*033。
直接字节送寄存器R3
LDAIR0,*103。
间接字节送寄存器R0
LDAIR1,*113。
间接字节送寄存器R1
LDAIR2,*123。
间接字节送寄存器R2
LDAIR3,*133。
间接字节送寄存器R3
LDAXR0,*203。
变址字节送寄存器R0
LDAXR1,*213。
变址字节送寄存器R1
LDAXR2,*223。
变址字节送寄存器R2
LDAXR3,*233。
变址字节送寄存器R3
LDARR0,*303。
相对字节送寄存器R0
LDARR1,*313。
相对字节送寄存器R1
LDARR2,*323。
相对字节送寄存器R2
LDARR3,*333。
相对字节送寄存器R3
STAD*,R0043。
寄存器R0送直接字节
STAD*,R1053。
寄存器R1送直接字节
STAD*,R2063。
寄存器R2送直接字节
STAD*,R3073。
寄存器R3送直接字节
STAI*,R0143。
寄存器R0送间接字节
STAI*,R1153。
寄存器R1送间接字节
STAI*,R2163。
寄存器R2送间接字节
STAI*,R3173。
寄存器R3送间接字节
STAX*,R0243。
寄存器R0送变址字节
STAX*,R1253。
寄存器R1送变址字节
STAX*,R2263。
寄存器R2送变址字节
STAX*,R3273。
寄存器R3送变址字节
STAR*,R0343。
寄存器R0送相对字节
STAR*,R1353。
寄存器R1送相对字节
STAR*,R2363。
寄存器R2送相对字节
STAR*,R3373。
寄存器R3送相对字节
JMPD*083。
直接转移
JMPI*183。
间接转移
JMPX*283。
变址转移
JMPR*383。
相对转移
BNZCD*0C3。
CY=0或Z=0时直接转移
BNZCI*1C3。
CY=0或Z=0时间接转移
BNZCX*2C3。
CY=0或Z=0时变址转移
BNZCR*3C3。
CY=0或Z=0时相对转移
MOVR0,R0401。
寄存器R0送寄存器R0
MOVR1,R0411。
寄存器R0送寄存器R1
MOVR2,R0421。
寄存器R0送寄存器R2
MOVR3,R0431。
寄存器R0送寄存器R3
MOVR0,R1441。
寄存器R1送寄存器R0
MOVR1,R1451。
寄存器R1送寄存器R1
MOVR2,R1461。
寄存器R1送寄存器R2
MOVR3,R1471。
寄存器R1送寄存器R3
MOVR0,R2481。
寄存器R2送寄存器R0
MOVR1,R2491。
寄存器R2送寄存器R1
MOVR2,R24A1。
寄存器R2送寄存器R2
MOVR3,R24B1。
寄存器R2送寄存器R3
MOVR0,R34C1。
寄存器R3送寄存器R0
MOVR1,R34D1。
寄存器R3送寄存器R1
MOVR2,R34E1。
寄存器R3送寄存器R2
MOVR3,R34F1。
寄存器R3送寄存器R3
ADCR0,R0501。
寄存器R0带进位加到寄存器R0
ADCR1,R0511。
寄存器R0带进位加到寄存器R1
ADCR2,R0521。
寄存器R0带进位加到寄存器R2
ADCR3,R0531。
寄存器R0带进位加到寄存器R3
ADCR0,R1541。
寄存器R1带进位加到寄存器R0
ADCR1,R1551。
寄存器R1带进位加到寄存器R1
ADCR2,R1561。
寄存器R1带进位加到寄存器R2
ADCR3,R1571。
寄存器R1带进位加到寄存器R3
ADCR0,R2581。
寄存器R2带进位加到寄存器R0
ADCR1,R2591。
寄存器R2带进位加到寄存器R1
ADCR2,R25A1。
寄存器R2带进位加到寄存器R2
ADCR3,R25B1。
寄存器R2带进位加到寄存器R3
ADCR0,R35C1。
寄存器R3带进位加到寄存器R0
ADCR1,R35D1。
寄存器R3带进位加到寄存器R1
ADCR2,R35E1。
寄存器R3带进位加到寄存器R2
ADCR3,R35F1。
寄存器R3带进位加到寄存器R3
SBCR0,R0601。
寄存器R0带进位减到寄存器R0
SBCR1,R0611。
寄存器R0带进位减到寄存器R1
SBCR2,R0621。
寄存器R0带进位减到寄存器R2
SBCR3,R0631。
寄存器R0带进位减到寄存器R3
SBCR0,R1641。
寄存器R1带进位减到寄存器R0
SBCR1,R1651。
寄存器R1带进位减到寄存器R1
SBCR2,R1661。
寄存器R1带进位减到寄存器R2
SBCR3,R1671。
寄存器R1带进位减到寄存器R3
SBCR0,R2681。
寄存器R2带进位减到寄存器R0
SBCR1,R2691。
寄存器R2带进位减到寄存器R1
SBCR2,R26A1。
寄存器R2带进位减到寄存器R2
SBCR3,R26B1。
寄存器R2带进位减到寄存器R3
SBCR0,R36C1。
寄存器R3带进位减到寄存器R0
SBCR1,R36D1。
寄存器R3带进位减到寄存器R1
SBCR2,R36E1。
寄存器R3带进位减到寄存器R2
SBCR3,R36F1。
寄存器R3带进位减到寄存器R3
ANDR0,R0701。
寄存器R0"与"到寄存器R0
ANDR1,R0711。
寄存器R0"与"到寄存器R1
ANDR2,R0721。
寄存器R0"与"到寄存器R2
ANDR3,R0731。
寄存器R0"与"到寄存器R3
ANDR0,R1741。
寄存器R1"与"到寄存器R0
ANDR1,R1751。
寄存器R1"与"到寄存器R1
ANDR2,R1761。
寄存器R1"与"到寄存器R2
ANDR3,R1771。
寄存器R1"与"到寄存器R3
ANDR0,R2781。
寄存器R2"与"到寄存器R0
ANDR1,R2791。
寄存器R2"与"到寄存器R1
ANDR2,R27A1