模型机实验报告范本模板文档格式.docx

上传人:b****6 文档编号:18661464 上传时间:2022-12-31 格式:DOCX 页数:21 大小:531.39KB
下载 相关 举报
模型机实验报告范本模板文档格式.docx_第1页
第1页 / 共21页
模型机实验报告范本模板文档格式.docx_第2页
第2页 / 共21页
模型机实验报告范本模板文档格式.docx_第3页
第3页 / 共21页
模型机实验报告范本模板文档格式.docx_第4页
第4页 / 共21页
模型机实验报告范本模板文档格式.docx_第5页
第5页 / 共21页
点击查看更多>>
下载资源
资源描述

模型机实验报告范本模板文档格式.docx

《模型机实验报告范本模板文档格式.docx》由会员分享,可在线阅读,更多相关《模型机实验报告范本模板文档格式.docx(21页珍藏版)》请在冰豆网上搜索。

模型机实验报告范本模板文档格式.docx

7654

32

10

OP—CODE

rs

rd

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

Rs或rd

选定的寄存器

00

01

R0

R1

R2

(2)访问指令及转移指令

访问指令有2条,即存数(STA)、取数(LDA);

2条转移指令,即无条件转移(JMP)、结果为零或有进位转移指令(BZC),指令格式为:

76

54

M

D

其中,OP—CODE为操作码,rd为目的寄存器地址(用于LDA、STA指令).D为位移量(正负均可),M为寻址模式,其定义如下:

寻址模式M

有效地址E

说明

11

E=D

E=(D)

E=(RI)+D

E=(PC)+D

直接寻址

间接寻址

RI变址寻址

相对寻址

在本模型机中规定变址寄存器RI为寄存器R2.

(3)I/O指令

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

7654

OP-CODE

addr

其中,addr=01时选中“INPUTDEVICE”中的键盘输入设备,addr=10时,选中“OUTPUTDEVICE”中的LCD点阵液晶屏作为输出设备.

(4)停机指令

指令格式如下:

3.指令系统

共有16条基本指令,其中算术逻辑指令7条,访问内存指令和程序控制指令4条,输入/输出指令2条,其他指令1条.各条指令的格式、汇编符号、功能如表7—1所示。

助记符号

指令格式

功能

CLRrd

MOVrs,rd

ADCrs,rd

SBCrs,rd

INCrd

ANDrs,rd

COMrd

RRCrs,rd

RLCrs,rd

0111

0→rd

1000

rs→rd

1001

rs+rd+cy→rd

1010

rs–rd–cy→rd

1011

rd+1→rd

1100

rs∧rd→rd

1101

→rd

1110

1111

LDAM,D,rd

STAM,D,rd

JMPM,D

BZCM,D

E→rs

rd→E

E→PC

当CY=1或Z=1时,

INaddr,rd

OUTaddr,rd

0100

addr→rd

0101

rd→addr

HALT

0110

停机

本模型机的数据通路框图如图7-1.根据机器指令系统要求,设计微程序流程图及确定微地址,如图7-2.

图7-2微程序流程图

五、实验内容:

按照系统建议的微指令格式,参照微指令流程图,将每条微指令代码化,译成二进制代码表,并将二进制代码表转换为联机操作时的十六进制格式文件。

微代码定义如表7-1所示。

24

23

22

21

20

19

18

17

16

151413

121110

987

6

5

4

3

2

1

S3

S2

S1

S0

Cn

WE

A9

A8

A

B

C

uA5

uA4

uA3

uA2

uA1

uA0

微程序

六、实验框图设计:

模型机设计主要是包括:

控制器、存储器、运算器、输入、输出。

主要的设计是SE—5是根据FC,FZ,T4,P[4.。

1],SWA,SWB,I[7。

.2]来控制输出的SE[1..6],控制地址的跳转。

当SE输出0时Q输出1,当SE输出1时,Q输出D;

SE-5:

(SE6—1):

在波形图中实现跳转的时候,会出现如图:

刚开始对此变化不理解,自习观察SE6-1时,SE[6..1]作为控制端,SE为1时Q输出D,SE为0时Q输出1,达到跳转的功能,但是还隐含一个细节是:

在SE有0的时候,SE不用T2的时钟触发,地址会直接会发生跳转,所以会出现如图微地址由20直接跳到31。

1和3:

移位寄存器:

SHEFT和控制移位器的进位:

说明:

移位寄存器的M位有M[20]来控制,S[1..0]由M[22。

.21]来控制,控制进位由SHE_C0来控制,假设上次的移位器有进位,那么上次的SHEFT_CN输出1,在控制移位器进位的器件上,当需要进位时,即:

AR=1,(通过观察微指令开看AR进位时才选中)那么会有进位,此时在下一次带进位的移位时,SHE_C0=1;

2。

控制ALU进位的器件:

说明:

在此器件中,AR为控制端,上次的进位溢出位FC连到D0上M[19]与Q非的或,连接到ALU_CN,当M[19]=1时表示不带进位的运算,那么ALU_CN的结果肯定是1,在下次运算时肯定是不带进位的运算。

当M[19]=0,时,表示运算器运算是带进位的运算,若上次的运算FC=1,若选中AR则,表示本次的运算时带进位的运算,则在T2周期时,Q=1,那么ALU_CN的输出是0,将结果输入到ALU的进位控制端,控制本次的进位运算。

4.通过编程控制可编码寄存器的选择:

.

内部结构:

这是通过两个2-4译码器组合而成的选择器,根据decoder_b产生的控制信号,并且在编程时编写的

I0-—I3指令来控制,RS,RD,RI.寄存器的选择。

为了方便起见,在实验过程中用一一对应的实现:

R0→RS;

R1→RD;

R2→RI;

七、程序表设计:

实验程序如下:

根据框图的设计以及书中的指令系统功能表,在编码的时候考虑到的情况主要是用指令指定哪个寄存器,以及在实现LDA,STA,JMP,BZC,是选用的哪种寻址方式,为了全面的测试框图实现功能的正确性,在设计程序流程的时候所有的功能,以及所有的寻址方式都用到了,下面就是我设计的实验程序:

地址

数据

16进制表示

助记符

01000001

41

IN:

SW->

RD(27)

01000000

40

IN:

RS(26)

02

10100001

A1

SBC:

(RD—RS)=〉RD

03

01011001

59

OUT:

RD=>

LED

04

10010001

91

ADC:

(RD+RS)=>

RD

05

06

10110001

B1

INC:

RD+1=>

07

OUT:

08

11000001

C1

AND:

(RD)AND(RS)=〉RD

09

0A

11010001

D1

COM:

RD取反=〉RD

0B

0C

11100001

E1

RRC:

将RS中的数循环左移

0D

RD=〉LED

0E

11110001

F1

RLC:

将RS中的数循环右移

0F

10000001

81

MOV:

RS—〉RD

11

12

01000010

42

SW=>

RI(存入的数:

10H)

13

00000001

LDA:

RAM=〉RD

14

00011110

1E

把1E里的数送到RD中

15

00010101

STA:

RAM

00011111

1F

将RD中的数存到1F的地址中去

00101010

2A

JMP:

00010001

在变址寻址中用到(10H+11H)

00111101

3D

BZC:

1A

00000011

没有用到

1B

01100000

60

HALT:

停机指令

1C

00000000

没有用到

1D

00001111

在执行LDA是会用到0F

在执行STA时会存到此地址

在执行LDA存到此位置

OUT

读出RD中的数

JMP:

跳回到断点位置

00001001

执行JMP时用到此数

将设计好的程序表写入到内存中,然后读内存,然后执行程序.

七、实验过程分析:

模型机过程分析:

1.首先在ROM中已经存入了微代码,这里,在实验中发现35是错误的,正确的应该是:

01A426,这是通过

实验验证的。

在SE-5的控制下,产生SE信号,控制微代码的后六位是否发生改变,从而判定是否发生跳

转,产生的微地址送到uaddr中,指示到下一条的指令。

2.每一条微代码,通过decodera,decoderb,decoderc,decoder2-4产生相应的控制信号,在观察了四个器

件的的内部结构后,得出decodera选中的信号是输出1,得出decoderb选中的信号是输出0,得出

decoderc选中的信号是输出1,decoder2-4输出0,这样在结合74148优先权编码器后才能完整的控制总

线以及相应的输出。

3.reg_3是可编程寄存器,利用指令可以选用不同的寄存器,在此模型机自己设计了一个DECODERREG部件

通过,RD_B,RD_B,RD_B,以及I3—I0来控制选用相应的寄存器。

R0→RS;

R1→RD;

R2→RI;

4.在微程序流程图中在进行相对寻址时框图47是错误的应该是:

PC→BUS,BUS→DR2;

波形图分析:

1.开始执行程序,执行指令是40,执行的是IN指令,将27存入了指定的寄存器RD.

为编程方便用I0,I1,I2,I3,来控制选取:

此时指令是:

40,将26存入RS:

3.指令:

A1:

(RD-RS)=27—26=01,将结果存入RD中。

4。

将RD中的结果输出到led中显示:

此时的指令是(OUT:

59)。

5。

执行ADC(91)指令:

(RS+RD)=(26+01)=27存入RD中:

6。

执行OUT指令,将RD中的结果输出:

7.执行INC指令,并将加1的结果输出到led中:

8。

执行AND(C1)指令,(RD)AND(RS)=(28AND26)=20,然后执行OUT(59)指令,并将结果输出到led中显示:

9。

执行COM取反指令,RD中的值是20取反后为DF,并执行OUT指令后在led中显示:

10.执行RRC指令,RS中值是26循环右移后的结果是13,并执行OUT指令,在led中显示:

11.执行RLC指令,将RS中的26循环左移后的结果是4C并将结果在led中显示:

12。

执行MOV指令(RS-〉RD)=26,并执行OUT指令,在led中显示:

13.先执行IN指令(01000010),将10存入到指定的RI寄存器中,然后执行LDA指令,将指令中的0F存入到RD中。

14.通过间接寻址方式执行STA(15)存数指令,将RD中的0F存入到RAM中:

15。

通过变址寻址方式执行JMP指令,跳到21执行OUT指令,读出LDA中RD中的数:

16.执行OUT指令,将RD中的数读出来,然后执行JMP指令跳回到断点地址继续执行。

17。

通过相对寻址方式,执行BZC指令:

在PC值为1A时将PC送到AR,此时RAM里的值是03H,并送入DR1,在执行完微地址为23后,PC的值变为1B,将1BH送入DR2中,03H与1BH相加,相加后FC与FZ的值都不为1,所以在进行P(3)测试后跳到了44。

八、实验结果中遇到的问题:

实验结果中遇到的问题:

在刚开始的时候,在看流程图时,在刚开始的时候,明白微地址的跳转是如何实现的,但是每个框图的具体实现却搞得不是很明白,在看明白了decodea,decodeb,decodec,和74148以及reg_3的内部结构,才明白了具体的电路,以及最终的信号输出的正负,如何控制总线的选择,在不同的时钟周期,实现不同的功能。

在复杂的模型机设计的时候,对于可编码寄存器的选择,以及ALU以及SHEFT的进位控制端的控制信号的实现.在设计程序表的时候花的时间比较多,对于实现JMP跳转的时候,对于它的跳转煞费苦心,要实现原来书本中提到的断点跳转功能。

九、实验体会:

通过模型机的实验,对于计算机五大部件的协同工作,以及微命令的产生和控制信号的控制的具体实现,在实验中遇到困难和问题时与队友惊醒商量,互相提出方案,设计部件,实现要得到的功能。

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

当前位置:首页 > 小学教育 > 学科竞赛

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1