实验七 教学机指令系统更改与扩展实验 下载本文

课程名称 计算机组成原理实验

实验序号 实验名称 实验七 教学机指令系统更改与扩展实验

专业_____________ 班级___ _ 学号__ _____ _ 姓名______ _ 实验日期 年 月 日 成绩_____ _ _

实验七 教学机指令系统更改与扩展实验

一、实验目的

1.通过学习教学机指令系统更改与扩展技术,进一步理解微程序控制器的组成、工作原理及实现方法。

2.深入理解程序在计算机中的执行过程,计算机硬件系统各组成部分的逻辑实现方法及互连成整机的技术,牢固建立计算机的整机概念。

3. 对整个学期实验课学习做了回顾、总结与提升,同时培养学生独立思考能力以及取得工程设计与组装调试的工作经验。

二、实验内容

1.实验电路

ZMS0S1S2S3CINC数据总线DBUSINS7—INS0ABUSALUA端口A7—A04选1选择器ARD0RD1B端口B7—B04选1选择器BLDCLDZT3MBUSMEMWT2D7L—D0LD7R—D0R双端口RAMA7L—A0LA7R—A0RPC7—PC0CLR#PCADDLPCPCINCT3IR3—IR0IRBUSRS0RS1AR7—AR0CLR#LARARINCT3DBUSRD1RD0LR0LR1LR2LR3LR0DRWT3SWDRD0RD1RS0数据开关SD7—SD0W3INTQW1W2T1T2T3A组控制信号B组控制信号独立K15-K0IR7—IR4RS1ZCCLR#T3ZCCLR#T3MFCLR#QDSTOPDPINTENINTDIINTPSHORTLONG2—4译码器ARPCR0DBUSR1LR1DRWT3R2LR2DRWT3R3LR3DRWT3LIARIABUST3IARIRPC7—PC0LIRT3控制信号SBUS控制信号切换电路控制转换微程序控制器硬连线控制器W3—W1IR7—IR42选1选择器IR3—IR0SELCTLSEL3—SEL0IRBUS时序发生器SWC—SWA 图1 TEC-8模型计算机框图

1

2.实验任务

(1) a. 将教学机(模型机TEC-8)上指令系统(15条指令)中的开中断指令(EI)和

关中断(DI)指令分别改为求反指令(NOT)和逻辑或指令(OR)。 b.在(1)的基础上扩展一条指令:传送指令(MOV)。

(2)验收程序如表1

表1 指令、对应的机器代码表

地址 指令 机器二进制代码 机器16进制代码

00H LD R1,[R1]

01H INC R3

02H OR R3,R2 03H SUB R3,R2

04H JZ 09H

05H ST R3,[R0]

06H MOV R0,R3

07H ADD R1,R2 08H AND R1,R0

09H NOT R1

0AH OUT R1

0BH STP

(3)通过连线构成能够运行上述程序的模型计算机。

(4)将程序和数据写入存储器,并且给寄存器R0、R1、R2、R3置初值,分别用单拍方式和连续方式运行一遍程序,用实验台操作检查程序运行结果。R0、R1、R2、R3的初值分别为0CH、0DH、02H、56H。(0CH)、(0DH)分别为0AAH、55H。

三、实验环境

软件: WIN XP、串口调试助手软件

硬件:1.微机 1台

2.TEC-8实验系统 1台 3.逻辑测试笔 1支

四、设计关键技术、实验步骤和实验结果

1. 按照实验任务的要求,指令功能与格式如表2 ( 分)

2

表2 指令功能与格式

名称 逻辑或 求反 传送

2.根据要求完成如图2微程序流程图( 分)

提示:4个控制台操作微程序保留不变,即同TEC-8。省略号代表讲义图5.2或课本10.17中原有的微程序流图。

助记符 OR Rd, Rs NOT Rd MOV Rd, Rs 功能 Rd + Rs ? Rd ———IR(7-4 ) 1100 1101 1111 指令格式 IR(3-2) IR(3-2) Rd Rd Rd Rs ×× Rs Rd ? Rd Rs ? Rd

01 LIR PCINC P1 20

ADD(0001) P1 OR (1100) NOT (1101) STP (1110) MOV( 1111 )

21 2C 2D M S=0000 ABUS DRW LDZ P4 2E STOP P4 …… 2F S=1001 …… CIN ABUS DRW LDZ LDC P4 M S=1110 ABUS DRW LDZ P4 M S=1010 ABUS DRW P4 图2 微程序流程图

3、根据图2微程序流程图编写的微程序代码表3( 分)

提示:表3只列出TEC-8模型机中指令系统经修改、扩展后的微程序代码表。

微指令 当前微地址 OR 2C 表3 微程序代码表 NOT MOV 2D 2F 3

后继微地址 P0 P1 P2 P3 P4 DRW PCINC LPC ARINC LAR MEMW STOP LIR LDZ LDC CIN S0 S1 S2 S3 M ABUS SBUS MBUS IABUS LIAR INTDI INTEN SEL0 SEL1 01 1 1 1 0 1 1 1 1 1 01 1 1 1 0 0 0 0 1 1 01` 1 1 0 1 0 1 1 1 4

SEL2 SEL3 SELCTL PCADD

4.根据表4对应的控存代码如表4( 分)

表4 控存代码表 微地址 CM4 CM3 CM2

2C 00 0F 88 2D 00 0C 08 2F 00 0E 80

CM1 0C 0C 0C CM0 01 01 01 根据表4的代码,用软件UltraEdit-32修改厂家提供的如下5个文件: cm0.bin , cm1.bin,cm2.bin,cm3.bin ,cm4.bin,然后通过TEC-8COMDOWN软件,将以上5个文件下载到相应的控存芯片上。

(1)用软件UltraEdit-32修改厂家提供的如下5个文件步骤:

打开软件,点击打开文件,选择CM0,点确定,在打开的界面根据表4的控 存代码表修改相应微地址上的数值,如将CM0的微地址为2C、2D、2F分别 修改成01、01、01。以此类推,修改CM1、CM2、CM3、CM4

(2)通过TEC-8COMDOWN软件,将以上5个文件下载到相应的控存芯片上:

打开该软件,将波特率调成2400

然后勾选CM0、CM1、CM2、CM3、CM4 打开文件,选择相应的文件,最后点击编程

5.对机器指令组成的简单程序(验证程序)进行手工译码和计算每条指令运行结果,如表5所示( 分)

表5 指令、机器代码及结果

地址 00H 01H 02H 03H 04H 05H 06H 07H 08H 09H 0AH 0BH 指令 LD R1,[R1] INC R3 OR R3,R2 SUB R3,R2 JZ 09H ST R3,[R0] MOV R0,R3 ADD R1,R2 AND R1,R0 NOT R1 OUT R1 STP 机器二进制代码 机器16进制代码 每条指令执行结果 R1=55H R3=57HH R3=57H R3=55H (0CH)=0AAH R0=55H R1=57H R1=55H R1=0AAH DBUS=0AAH 01010101B 01001100B 11001110B 00101110B 10000100B 01100011B 11110011B 00010110B 00110100B 11010100B 10100001B 11100000B 55H 4CH CEH 2EH 84H 63H F3H 16H 34H D4H A1H E0H 5

6.连线和设置通用寄存器R0、R1、R2、R3及内存单元(0CH)、(0DH)的值,并简述操作步骤( 分)

a.电路连线,连线如表6。

表6 连线表

数据通路 IR7-O 控制器

b.根据下表7的数据在教学出上设置通用寄存器R0、R1、R2、R3及内存单元(0CH)、(0DH)的值

连完线后,按复位按钮CLR,设置SWC=1、SWB=0、SWA=0。按QD按钮一次,控制台指示灯亮,微地址指示灯μA5~μA0显示09H,进入写寄存器操作根据操作数初值表将R0、R1、R2、R3的初值写入寄存器。

R0:在数据开关SD7~SD0上设置R0的值,通过指示灯D7~D0可以检查地址是否正确。按QD按钮,将设置的数写入R0。指示灯μA5~μA0显示08H,指示灯B7~B0显示R0的值。 R1:在数据开关SD7~SD0上设置R1的值。按QD按钮,将设置的数写入R1。指示灯μA5~μA0显示0AH,指示灯B7~B0显示R1的值

R2:在数据开关SD7~SD0上设置R2的值,按QD按钮,将设置的数写入R2。指示灯μA5~μA0显示0CH,指示灯B7~B0显示R2的值。

R3:在数据开关SD7~SD0上设置R3的值,按QD按钮,将设置的数写入R3。指示灯μA5~μA0显示00H,指示灯A7~A0显示R0的值,指示灯B7~B0显示R3的值。

表7 操作数初值表

R0 0CH R1 0DH R2 02H R3 56H (0CH) 0AAH (0DH) 55H IR7-I IR6-O IR5-O IR6-I IR5-I IR4-O IR4-I C-O C-I Z-O Z-I 7.存储验证程序机器代码,简述操作步骤( 分)

根据表5,将验收程序的机器代码存储到教学机RAM相应的单元中。

步骤:

按复位按钮CLR,设置SWC=0、SWB=0、SWA=1。按QD按钮一次,控制台指示灯亮,微地址指示灯μA5~μA0显示03H,进入写存储器操作。

在数据开关SD7~SD0上设置存储器地址00H(通过数据总线指示灯D7~D0可以检查地址是否正确),按QD按钮一次,将存储器地址写入地址寄存器AR(微地址指示灯μA5~μA0显示02H),指示灯AR7~AR0显示当前存储器地址00H。在数据开关上设置被写的第一条指令,按QD按钮一次,将指令写入存储器。写入指令后,从指示灯AR7~AR0上可以看到地址寄存器自动加1,此时自动跳转到下一地址。在数据开关上设置下一条指令,按QD按钮一次,将第2条指令写入存储器。这样一直继续下去,直到将测试程序全部写入存储器。

6

八、运行结果( 分)

用单拍方式或连续方式执行一遍程序。执行完程序后,查看通用寄存器R0、R1、R2、R3及(0CH)、(0DH)的值并填入下表8,最后分析运行结果。

表8 理论值与实验值比较表

寄存器号 理论值 实验值 R0 55H 55H R1 0AAH 0AAH R2 02H 02H R3 55H 55H (0CH) (0DH) 0AAH 0AAH 55H 55H 五、实验结果与讨论( 分)

六、总结( 分)

7