编写微指令 计算机组成,计算机组成原理微指令实验报告.doc

西北工业大学《计算机组成原理实验报告》

计算机组成原理实验报告

时间: 2012.11.26 地点: 实验大楼4楼北 成绩:

班级: xxxxxx 学号: xxxxxx 姓名: xx

班级: xxxxxx 学号: xxxxxxx 姓名: xx

题目: 微程序控制器实验

一、 实验目的:

1. 掌握微程序控制器的组成原理;

2. 掌握微程序的编制、写入,观察微程序的运行过程。

二、 实验内容及要求:

3. 熟悉微指令的编写方式,编码格式,了解机器指令与微指令之间的关联。

4. 设计微指令,以实现从存储器中读出8位二进制数并进行加法计算的功能。

三、 实验步骤、观察与思考:

实验步骤:

1. 连线,将实验电路板上的所需单元用排线连接起来,以实现数据通路。

2. 对微控制器的读写操作

(1) 手动读写:(默认为已实现线路连接)

进行手动读或写,都需要手动给出地址,系统专门安排了一个ADDR单元,作为地址输入。ADDR单元实为一个加减计数器。当开关为“加1”挡时,在T2的下沿计数器进行加1计数;当开关为“减1”挡时,在T2的下沿计数器进行减1计数;当开关置为“置数”挡时,计数器置初值,其作用相当于直通,SA7…SA0的输出值就是二进制开关组的值。

在实验中选择什么挡位,取决于写入数据的地址是否连续,如果是连续地址,选择“加1”或是“减1”挡会方便一些。如果是离散地址,选择“置数”挡会方便一些。

1) 手动对微控制器进行编程(写)。

a. 修改连线,以方便实现手动控制(完成读写操作后恢复);

b. 将MC单元编程开关置为“编程”挡,时序单元状态开关置为“单步”挡,ADDR单元状态开关置为“置数”挡。

c. 使用ADDR单元的低六位SA5…SA0给出微地址MA5…MA0,微地址可以通过MC单元的MA5…MA0微地址灯显示。

d. CON单元SD27…SD20,SD17…SD10,SD07…SD00开关上置24位微代码,待写入值由MC单元的M23…M0 24位LED灯显示。

e. 启动时序电路(按动一次TS按钮),即将微代码写入到EEPROM2816的相应地址对应的单元中。

f. 重复c,d,e三步,将所需写入的微代码写入到2816芯片中(二进制微代码在表一中列出)。

2) 手动对微控制器进行校验(读)。

a. 接线方法和编程一样。

b. 将MC单元编程开关置为“校验”挡,时序单元状态开关置为“单步”挡,ADDR单元状态开关置为“置数”挡。

c. 使用ADDR单元的低六位SA5…SA0给出微地址MA5…MA0,微地址可以通过MC单元的MA5…MA0微地址灯显示。相应地址单元的数据将会被读出,并在MC单元的M23…M0 24位LED灯显示。重复本步,检查2816芯片中相应地址单元的数据是否和所设计的微代码二进制数据相同,如果不同,则说明写入操作失败,应重新写入。

(2) 联机读写。

1) 将微程序写入文件。微指令格式如下:

$M 1F 112233

其中,间隔用四个空格,微指令地址为两位十六进制,伪指令值为六位十六进制,按顺序为高、中、低。

分号为注释符

2) 写入微程序:

用联机软件的“转储装载数据”功能将该格式文件(*.TXT)装载入实验系统。装入过程中,在软件的输出区的“结果”栏会显示装载信息。

3) 校验位程序:

选择联机软件的“转储刷新指令区”可以读出下位机所有的机器指令和微指令,并在指令区显示。检查微控制器相应地址单元的数据是否与设计的微指令相同,如果不同,则说明写入操作失败,应重新写入,可以通过联机软件单独修改某个单元的微指令。

3. 运行微程序

微程序设计:

微指令格式:

23

22

21

20

19

18~15

14~12

11~9

8~6

5~0

M23

M22

WR

RD

IOM

S3~S0

A字段

B字段

C字段

MA5~MA0

加法指令ADD:R0的数据与存储器某个单元的数据相加,结果送到R0。

输入指令IN

输出指令OUT

停机指令HTL

表 1二进制数微代码表

地址

十六进制

高五位

S3-S0

A字段

B字段

C字段

MA5-MA0

00

000001

00000

0000

000

000

000

000001

01

007070

00000

0000

111

000

001

110000

04

006D45

00000

0000

110

110

101

000101

05

106006

00010

0000

110

000

000

000110

06

102007

00010

0000

010

000

000

000111

07

053201

00000

1010

011

001

000

000001

08

106009

00010

0000

110

000

000

001001

09

200401

00100

0000

000

010

000

000001

0A

10600B

00010

0000

110

000

000

001011

0B

103001

00010

0000

011

000

000

000001

30

001404

00000

0000

001

010

000

000100

31

006D48

00000

0000

110

110

101

001000

32

00140C

00000

0000

001

010

000

001100

33

00141C

00000

0000

001

010

000

011100

34

006D4A

00000

0000

110

110

101

001010

35

001420

00000

0000

001

010

000

100000

$M 00 000001 ; NOP

$M 01 006D43 ; PC->AR,PC加1

$M 03 107070 ; MEM->IR, P<1>

ADD:$M 30 001404 ; R0->A 实现相加

$M 04 006D45 ; PC->AR

$M 05 106006 ; MEM->AR

$M 06 102007 ; MEM->B

$M 07 053201 ; A加B->R0

STA:$M 31 006D48 ; PC->AR 实现存数

$M 08 106009 ; MEM->AR

$M 09 200401 ; R0->MEM

LAD:$M 34 006D4A ; PC->AR 实现取数

$M 0A 10600B ; MEM->AR

$M 0B 103001 ; MEM->R0

IN:$M 32 183001 ; IN->R0 实现in->R0

OUT:$M 33 280401 ; R0->OUT 实现R0->out

HTL:$M 35 000035 ; NOP 停机

四、 结论:

我们在本次试验中实现了对存储器读写,首先IN单元输入10011001到MEM(0), IN单元输入10010110到MEM(1),经过CPU对MEM的读取,(地址线手动给出)实现了结果输出结果00101111(FC=1)在OUT单元上显示2F,FC=1

根据我们的设计,我们的微程序对应机器指令如下:

助记符

机器指令码

说明

ADD

0000 0000

R0 + MEM R0

IN

0010 0000

IN R0

OUT

0011 0000

RO OUT

HLT

0101 0000

停机

五、 实验心得:

这次试验中,我们收获颇丰,熟悉了微程序控制器的使用方法,了解了其内部的逻辑结构,以及设计微程序时机器指令与微程序的对应方式,另外,对于微指令格式有了一个更深入的认识。

实验前,我们做了预习工作,但实际操作时,仍有些不当的地方,经两个人的努力,最终攻破许多难关。

4

展开阅读全文

  • 5
    点赞
  • 14
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值