组成原理课程设计复杂模型机设计实验.docx

上传人:b****2 文档编号:2225534 上传时间:2023-05-02 格式:DOCX 页数:13 大小:234.48KB
下载 相关 举报
组成原理课程设计复杂模型机设计实验.docx_第1页
第1页 / 共13页
组成原理课程设计复杂模型机设计实验.docx_第2页
第2页 / 共13页
组成原理课程设计复杂模型机设计实验.docx_第3页
第3页 / 共13页
组成原理课程设计复杂模型机设计实验.docx_第4页
第4页 / 共13页
组成原理课程设计复杂模型机设计实验.docx_第5页
第5页 / 共13页
组成原理课程设计复杂模型机设计实验.docx_第6页
第6页 / 共13页
组成原理课程设计复杂模型机设计实验.docx_第7页
第7页 / 共13页
组成原理课程设计复杂模型机设计实验.docx_第8页
第8页 / 共13页
组成原理课程设计复杂模型机设计实验.docx_第9页
第9页 / 共13页
组成原理课程设计复杂模型机设计实验.docx_第10页
第10页 / 共13页
组成原理课程设计复杂模型机设计实验.docx_第11页
第11页 / 共13页
组成原理课程设计复杂模型机设计实验.docx_第12页
第12页 / 共13页
组成原理课程设计复杂模型机设计实验.docx_第13页
第13页 / 共13页
亲,该文档总共13页,全部预览完了,如果喜欢就下载吧!
下载资源
资源描述

组成原理课程设计复杂模型机设计实验.docx

《组成原理课程设计复杂模型机设计实验.docx》由会员分享,可在线阅读,更多相关《组成原理课程设计复杂模型机设计实验.docx(13页珍藏版)》请在冰点文库上搜索。

组成原理课程设计复杂模型机设计实验.docx

组成原理课程设计复杂模型机设计实验

复杂模型机设计实验

一、实验目的

综合运用所学计算机原理知识,设计并实现较为完整的计算机。

二、实验设备

TDN-CM+计算机组成原理教学实验系统。

三、数据格式及指令系统

1.数据格式

模型机规定采用定点补码表示法表示数据,且字长为8位,其格式如下:

D7

D6D5D4D3D2D1D0

符号

尾数

2.指令格式

模型机设计四大类指令共十六条,其中包括算术逻辑指令、I/O指令、访问及转移指令和停机指令。

1)算术逻辑指令

设计7条算术逻辑指令并用单字节表示,寻址方式采用寄存器直接寻址,其格式如下:

D7D6D5D4

D3D2

D1D0

OP-CODE

rs

rd

其中,OP-CODE为操作码,rs为源寄存器,rd为目的寄存器,并规定:

rs或rd

选定的寄存器

00

01

10

R0

R1

R2

7条算术逻辑指令的名称、功能和具体格式见表

2)访存指令及转移指令

模型机设计2条访存指令――存数(STA)和取数(LDA),2条转移指令――无条件转移(JMP)和结果为零或有进位转移指令(BZC),这4条指令长度为2个字节,其指令格式为:

D7D6

D5D4

D3D2

D1D0

00

M

OP-CODE

rd

D

其中,OP-CODE为操作码,rd为目的寄存器地址(LDA、STA指令使用)。

D为偏移量(正负均可),M为寻址模式,其定义如下:

寻址模式M

有效地址E

说明

00

01

10

11

E=D

E=(D)

E=(RI)+D

E=(PC)+D

直接寻址

间接寻址

RI变址寻址

相对寻址

本模型机规定变址寄存器RI指定为寄存器R2。

3)I/O指令

输入(IN)和输出(OUT)指令采用单字节指令,其格式如下:

D7D6D5D4

D3D2

D1D0

OP-CODE

addr

rd

其中,addr=01时,选中“INPUTDEVICE”中的开关组作为输入设备,addr=10时,选中“OUTPUTDEVICE”中的数码块作为输出设备。

4)停机指令

指令格式如下:

D7D6D5D4

D3D2

D1D0

OP-CODE

00

00

HALT指令用于实现停机操作。

3.指令系统

本模型机共有16条基本指令,其中算术逻辑指令7条,访存指令和程序控制指令4条,输入输出指令2条,其它指令1条,表列出了各条指令的格式、汇编符号、指令功能。

表1

助记符号

指令格式

功能

CLRrd

MOVrs,rd

ADCrs,rd

SBCrs,rd

INCrd

ANDrs,rd

COMrd

RRCrs,rd

RLCrs,rd

 

0111

00

rd

 

1000

rs

rd

1001

rs

rd

1010

rs

rd

1011

rd

1100

rs

rd

1101

rd

1110

rs

rd

1111

rs

rd

 

0→rd

rs→rd

rs+rd+cy→rd

rs-rd-cy→rd

rd+1→rd

rs∧rd→rd

→rd

rs→rd

rs←rd

LDAM,D,rd

STAM,D,rd

JMPM,D

BZCM,D

 

00

M

00

rd

D

 

00

M

01

rd

00

M

10

rd

D

00

M

11

rd

D

 

E→rs

rd→E

E→PC

当CY=1或Z=1,

E→PC

INaddr,rd

OUTaddr,rd

0100

01

rd

0101

01

rd

addr→rd

rd→addr

HALT

0100

00

00

停机

四、总体设计

本模型机的数据通路框图如图所示。

图1:

数据通路图

根据机器指令系统的要求,设计微程序流程图及确定微地址如下:

图2:

微程序流程图

根据流程图,确定如下微程序:

微程序:

$M00018108$M2205DB81

$M0101ED82$M230180E4

$M0200C050$M24018001

$M0300A004$M2595AAA0

$M0400E0A0$M2600A027

$M0500E006$M2701BC28

$M0600A007$M2895EA29

$M0700E0A0$M2995AAA0

$M0801ED8A$M2A01B42B

$M0901ED8C$M2B959B41

$M0A00A03B$M2C01A42D

$M0B018001$M2D65AB6E

$M0C00203C$M2E0D9A01

$M0D00A00E$M2F01AA30

$M0E01B60F$M300D8171

$M0F95EA25$M31959B41

$M1001ED83$M32019A01

$M1101ED85$M3301B435

$M1201ED8D$M3405DB81

$M1301EDA6$M35B99B41

$M14001001$M360D9A01

$M15030401$M37298838

$M16018016$M38019801

$M173D9A01$M3919883A

$M18019201$M3A019801

$M1901A22A$M3B070A08

$M1A01B22C$M3C068A09

$M1B01A232

$M1C01A233

$M1D01A236

$M1E318237

$M1F318239

$M20009001

$M21028401

 

验证程序:

助记符机器码

IN01,R0$P0044

IN01,R2$P0146

SBCR2,R0$P02A8

MOVR0,R1$P0381

RLCR1,R1$P04F5

OUTR1,R1$P0559

HALT$P0660

指令功能:

在实验板的数据开关手动输入一个数存到R0寄存器里,在输入另一个数到R2寄存器里,然后用R2-R0存到R0寄存器里,接着把R0里的数转存到R1寄存器,然后再把R1的数左移一位存到R1,接着在数码管显示输出当前R1寄存器里的数,最后停止。

五、实验步骤

1.按图连接实验线路

2.写入程序

1)手动写入

A.按如下步骤讲微代码写入微控器中的存储器2816中:

1将编程开关置为PROM(编程)状态。

2将实验板上“STATEUNIT”中的“STEP”置为“STEP”,“STOP”置为“RUN”状态。

3用二进制模拟开关置微地址MA5—MA0。

4在MK24-MK1开关上置微代码,24位开关对应24位显示灯,开关量置为“0”时灯亮,开关量为“1”时灯灭。

5启动时序电路(按动启动按钮“START”),即将微代码写入到2816的相应地址对应的单元中。

6重复①-⑤步骤,将所有的微代码写入2816中。

B.按如下步骤校验微代码

1将编程开关置为READ(校验)状态。

2将实验板上“STATEUNIT”中的“STEP”置为“STEP”,“STOP”置为“RUN”状态。

3用二进制模拟开关置微地址MA5—MA0。

4启动时序电路(按动启动按钮“START”),读出微代码。

观察显示灯MD24-MD1的状态(灯亮为“0”,灭为“1”),检查读出的微代码是否与写入的相同。

如果不同,则将开关置于PROM编程状态,重新执行

)即可。

C.按如下步骤使用KWE微程序进行机器指令程序的装入。

1使编程开关处于“RUN”,STEP为“STEP”状态,STOP为“RUN”状态。

2拨动总清开关CLR(0→1→0),微地址寄存器清零,程序计数器清零,然后使控制台SWB、SWA开关置为“01”,并按动一次START,微地址显示灯显示“010001”。

3再按动一次START,微地址灯显示“010100”,此时数据开关的内容置为要写入的机器指令。

再按动两次START键后,即完成该条指令的写入,并且微地址显示灯显示“010001”。

(注:

由KWE的流程图可知,该流程每执行一次,将向PC寄存器所指向的存储器单元中写入一个字节的数据,并且将PC加1。

4如果还需要向存储器中输入数据,则需重复重新执行

D.按如下步骤使用KRD微程序进行机器指令程序的检查。

1使编程开关处于“RUN”,STEP为“STEP”状态,STOP为“RUN”状态。

2拨动总清开关CLR(0→1→0),微地址寄存器清零,程序计数器清零,然后使控制台SWB、SWA开关置为“00”,并按动一次启动开关START,微地址显示灯显示“010000”。

3再按动一次START,微地址灯显示“010010”,第三次按动STRAT,微地址灯显示为“010111”,再按动STRAT后此时输出单元的数码管显示为PC寄存器所指单元的内容。

(注:

由KRD的流程图可知,该流程每执行一次,将显示PC寄存器所指向的存储器单元中一个字节的数据,并且将PC加1。

4如果还需要检查存储器中其他单元的数据,则需重复重新执行

2)联机读/写程序

将微代码写入文本文件中,通过联机软件载入实验系统。

3.运行程序

1)本机运行

A.单步运行程序

1使编程开关处于“RUN”状态,STEP为“STEP”状态,STOP为“RUN”状态。

2拨动总清开关CLR(0→1→0),微地址寄存器清零,程序计数器清零。

3单步运行一条微指令,每按动一次START键,即单步运行一条微指令。

对照微程序流程图,观察微地址显示灯是否与流程一致。

4当运行结束后,可检查存数单元(0BH)中的结果是否和理论计算结果一致。

B.连续运行程序

1使编程开关处于“RUN”状态,STEP为“EXEC”状态,STOP为“RUN”状态。

2拨动总清开关CLR(0→1→0),微地址寄存器清零,程序计数器清零。

3按动START键,系统将连续运行程序,直至将STOP拨至“STOP”状态。

4当运行结束后,可检查存数单元(0BH)中的结果是否和理论计算结果一致。

2)联机运行

联机运行程序时,进入软件界面,装载机器指令及微指令后,运行即可。

 

图3:

实验连接图

六、实验总结:

这次课程设计中,基于前几次实验中,对计算机的大致组成以及运行原理有了初步的了解,并且对实验板也比较熟悉了,所以按照实验连接图连线也比较上手了,经过那么多次实验,觉得连线最重要的就是认真,如果一开小差就会出错,每连完一条线之后,都要检查一遍,看是否连错,这告诉我们,做每一件事都要认认真真的完成,容不得一丝马虎,否则只会落得个事倍功半的效果。

这次课程设计最重要的就是编写程序了,要想编写程序首次要对程序了解,知道每个助记符对应的机器码是什么意思,对应的二进制的每四位代表什么。

在对程序理解的过程中,刚开始不知道程序的十六进制是如何通过助记符转换过来的,经过对指令格式的剖析才知道没个助记符对应的二进制,然后对刚编好的程序进行运行,通过观察CPU一般都是先取机器指令,然后编译,送往寄存器,然后再去指令,再编译,一直这样下去,直到停止为止,此次课程设计最大的收获就是,通过观察大致了解了CPU的运行方式,并且都指令也有了较大的了解,还懂得了合作和请教才是完成任务的最佳方法。

展开阅读全文
相关资源
猜你喜欢
相关搜索
资源标签

当前位置:首页 > 人文社科 > 法律资料

copyright@ 2008-2023 冰点文库 网站版权所有

经营许可证编号:鄂ICP备19020893号-2