计算机组成原理课程设计江苏大学版Word格式.docx

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

计算机组成原理课程设计江苏大学版Word格式.docx

《计算机组成原理课程设计江苏大学版Word格式.docx》由会员分享,可在线阅读,更多相关《计算机组成原理课程设计江苏大学版Word格式.docx(14页珍藏版)》请在冰点文库上搜索。

计算机组成原理课程设计江苏大学版Word格式.docx

5、调试微程序。

利用调试软件“Step”按钮控制微指令单步执行,执行结果如图所示

例MOV指令的单步运行跟踪数据

6、分析微程序的执行结果,一般方法如下:

首先分析微程序执行流程是否正确,根据前面指令微流程的设计,理论上该指令微程序

的执行顺序应该是001→002→003→004→00B→00F→016→006→018→007→031→02D→

02E→000,通过调试软件的执行结果图可以看出,该指令微程序的微指令次序是正确的。

如果执行的微指令次序不正确,那就要分析原因,检查BM和NC设置是否正确、检查uAR

的各个输入信号的值是否正确,如IR、NA等。

然后分析指令的运行结果。

理论上本条测试指令执行完后,R1的值应该是0001。

通过

调试软件的执行结果图可以看出,指令执行结果是正确的。

如果结果不对,就需要进一

步分析每一条微指令。

分析的方法是针对微指令的每一条微命令,查看相应微操作前后相关

模块的数据变化是否与指令微流程一致。

下面举个例子说明如何分析每条微指令的。

图的微地址为000B(uAR=000B)的控存单元所对应的内容为2008000F,即微指

令为2008000F,所代表的微操作是:

PCoe,ARce,即PC的内容送IB、IB的内容送AR,

理论上的正确结果应该是IB=0031,AR=0031;

通过图的000B单元微指令的执行结果可

以看出,IB的数据由上一条微指令的结果0000→0031,AR的数据由上一条微指令的结果

0030→0031,说明本条微指令执行结果是正确。

从上面的分析可以看出,要想检查运行结果是否正确,关键是要清楚理论上正确的结果

是什么。

这就要求实验者对指令的微程序流程非常清楚,从而达到了理解计算机内部信息流

动过程、掌握计算机工作原理的目的。

所以实验者应重视实验数据的分析工作,否则就失去

了实验的意义。

1、测试内容:

立即数寻址、寄存器寻址

测试指令(或程序):

MOV#0001H,R1

机器码:

内存地址(H)

机器码(H)

汇编指令

0030

07610001

运行结果:

第二天取操作数微程序的设计和调试

设计并调试取操作数的微程序。

二、取操作数微流程

取目的操作数流程:

三、测试程序、数据及运行结果

格式如下:

间接寻址、寄存器寻址

MOF(0048)R1

0721004800580001

四、设计中遇到的问题及解决办法

在设计过程中开始对调试程序的运行不熟悉,不是很了解了此程序的运行。

在操作过程中,粗心导致了输入机器码的错误,或者是所在位置错误,重新输入解决了此问题。

我详细地了解了它的整个过程和对于每一步的分析和验证,对微程序设计有了更深入的了解。

第三天双操作数指令的微程序设计与调试

设计并调试运算指令的微程序。

二、双操作数指令微程序入口地址

指令助记符

指令编码

入口地址(H)

F

E

D

C

B

A

9

8

7

6

5

4

3

2

1

MOVsrc,dst

源地址码

目的地址码

031

ADDsrc,dst

032

ADDCsrc,dst

033

SUBsrc,dst

034

SUBBsrc,dst

035

CMPsrc,dst

036

ANDsrc,dst

037

ORsrc,dst

038

XORsrc,dst

039

TESTsrc,dst

03A

三、双操作数指令执行微程序

微地址(H)

微指令(H)

微命令

BM

NA

注释

007

00000800

044

指令执行入口

048

9870006F

TRoe,ADD,PSWce,SV

06F

ADD

04C

98B0006F

TRoe,ADDC,PSWce,SV

ADDC

050

98F0006F

TRoe,SUB,PSWce,SV

SUB

054

9930006F

TRoe,SUBB,PSWce,SV

SUBB

058

98C00000

TRoe,CMP,PSWce

000

CMP

05C

9970006F

TRoe,AND,PSWce,SV

AND

060

9980006F

TRoe,OR,PSWce,SV

OR

064

9A30006F

TRoe,XOR,PSWce,SV

XOR

068

TRoe,AND,PSWce

TEST

06F

00000E70

NOP

070

回送

四、测试程序、数据及运行结果

立即寻址,直接寻址,间接寻址,寄存器寻址,寄存器间接寻址

测试程序:

MOV(0048H)R1

TEST0048HR1

AND#0078H(R0)

ADDR1R0

072100480001

0048

2B480001

TEST0048HR1

0078

1F70FFF00000

AND#0078H(R0)

0820

ADDR1R0

五、设计中遇到的问题及解决办法

调试双操作数指令执行微程序,先要写出双操作数指令执行微程序的微地址,微命令,然后写微程序,最后上机调试,判断是否正确,检查微程序运行结果是否正确是一项稍繁琐的事情,需要检查每步的寄存器、标志位、总线上的地址和数据。

但经过几天的熟悉,我们已慢慢熟悉掌握。

第四天单操作数运算和移位指令的微程序设计与调试

完成单操作数运算指令INC、DEC、NOT和7条移位指令微程序的设计。

二、单操作数运算和移位指令微程序入口地址

INC

071

SAR

061

DEC

072

SHL

062

NOT

073

SHR

063

ROL

ROR

065

RCL

066

RCR

067

三、单操作数运算和移位指令微程序的设计

092

1810006F

094

1820006F

096

098

09A

09C

09E

0A4

1A70006F

INC,PSWce,SV

0A8

1AB0006F

DEC,PSWce,SV

0AC

19F0006F

NOT,PSWce,SV

Soe,GRSce

存入寄存器

Soe,DRce

存入dr

00052000

DRoe’,ARoe’,WR

存入贮存

1.测试内容:

间接寻址

SHL(0010)H

00590010

微指令的执行次序为:

001—>

002—>

003—>

006—01B—>

01F—>

022—>

023—>

024—>

025—>

026—>

007—>

62—>

02F,参照取指令、取操作数和SHL指令执行微流程分析,所执行的微指令的次序是正确的。

2.测试内容:

相对寻址

DEC(0001)

机器码:

02580001

DEC(0001)

运行结果及分析:

第五天子程序调用、堆栈和转移指令微程序设计与调试

完成CALL、RET、PUSH、POP和9条转移指令的微程序的设计。

二、PUSH、POP、CALL、RET指令微程序的设计

PUSH

0C0

F40000C1

SPoe,Ace

0C1

堆栈地址存入A

02B000C2

DEC,SV

0C2

地址减1,输出

7C0800C3

Soe,SPce,ARce

0C3

地址存入堆栈和AR中

ARoe'

,DRoe'

,WR

地址写入主存

POP

0C8

B00000C9

ARoe,TRce

0C9

AR内容存入TR

F40800CA

SPoe,Ace,ARce

0CA

SP内容存入A和AR

027610CB

,RD,DRce'

,INC,SV

0CB

800800CC

TRoe,ARce

0CC

TR内容存入AR

7C052000

Soe,SPce,ARoe'

堆栈内容写入新地址

CALL

0D0

F40000D1

0D1

B2B000D2

DEC,SV,ARoe,TRce

0D2

地址减1,AR内容存入TR

7C0800D3

Soe,ARce,SPce

0D3

地址存入AR,SP

200300D4

PCoe,DRce

0D4

PC内容存入DR

,WR,TRoe,PCce

PC个数写入内存,TR内容存入PC

RET

03C

F408003D

03D

堆栈地址写入A和AR

0276103F

INC,SV,ARoe'

03F

地址加1,同时读数

C4000040

DRoe,PCce

040

DR值存入PC

7C000000

Soe,SPce

堆栈存入新地址

直接寻址

CALL000AH

035A000A

首先,微指令的执行次序为:

07A—>

047—>

048—>

049—>

04A—>

000,参照取指令、取操作数和CALL指令执行微流程分析,所执行的微指令的次序是正确的。

2、测试内容:

JMP+2

02180002

3.测试程序:

PUSH0010HPOP0012H//0010存放AAAA

机械码:

031A0010033A0012

PUSH0010HPOP0012H

第六天检查指令

用综合应用程序测试JU-C1十六位微程序控制计算机。

二、测试程序、数据及运行结果

MOV#0031H,0080H077A00310080

PUSH0080H031A0080

CALL0060H035A0060

SHL0080H005A0080

总结

这次计算机组成原理简单微程序的设计,通过实验将实际问题和课本内容紧密的联系在一起,将知识运用到了实际之中,更加深入地掌握了微程序设计。

课本的知识是死的,只有经过自己的动手实践调试,才能更好的掌握知识

我意识到了上机实践的重要性,因为在进行调试时,因此在对于一些错误的处理还是很生疏,这就暴露了平时不注重实践的弊端。

既然是程序设计,就应该多动手,当然不仅仅是纸上谈兵,还应注重多上机操作。

还有就是,在执行指令的过程中出现的错误,我还不能准确的定位出到底是哪地方面出现了错误,往往需要询问老师或者是思考很久之后才能找到原因。

对于这点,应该是对于整个过程还不够了解的原因,因此在以后的学习中还应该加强对知识的认识程度。

刚开始时,由于下载器件的问题保存微程序时中间会有一部分突然就没了,最开始还没在意,就是总发现验证时总出错,后来才知道是下载的微程序有问题,当时真的是非常的郁闷,后来在经过一翻重新检查后,终于把微程序完整的保存好了。

在完成整个课设后,我对取操作数的过程,MOV指令,运算类指令,CPU硬件的基本设计,转移指令,移位指令,堆栈类指令以及中断系统都有了更加深刻的理解,因为是通过实践的缘故,能够将抽象化的过程更加形象化,便于理解,使我明确了各种指令的执行过程。

我认为整个课设的设计还是很合理的,每天都有每天的任务,任务也很明确,每天都可以充分利用,后一天的内容与前一天的内容紧密相连,难度也是逐渐加深,这个循序渐进的过程更容易让我们接受。

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

当前位置:首页 > 工作范文 > 行政公文

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

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