课程设计说明书
设计名称: 计算机组成原理
题 目: 模型机的设计与实现
学生姓名: 专 业: 班 级: 学 号: 指导教师: 日 期: 年 月 日
1
课程设计任务书
专业 级 班
一、课程设计题目
1.基本模型机设计 2.复杂模型机设计
二、课程设计目的
1.在掌握“TDN-CM++计算机组成原理教学实验系统”部件单元电路的基础上,通过对一个简单计算机的设计,以达到对计算机的基本组成、部件的设计、部件间的连接、微程序控制器的设计、微指令和微程序的编制与调试等过程有更深的了解,加深对理论课程的理解。
2.通过模型机的设计和调试,连贯运用计算机组成原理课程学到的知识,建立计算机整机概念,加深计算机“时空”概念的理解。
3.培养独立工作和创新思维的能力,取得设计与调试的实践经验。
三、主要内容
综合运用所学计算机原理知识,利用TDN-CM++教学实验系统设计并实现简单的模型机。设计总体结构及机器指令、微指令。根据设计的接线图搭好模型机电路,利用设计的指令编写程序并在机器上运行。
2
四、设计要求
在掌握“TDN-CM++计算机组成原理教学实验系统”原理的基础上,以此实验系统为平台,设计一台微程序控制的模型计算机。 1.设计模型机硬件(需含计算机基本组成,即CPU、内存、I/O接口、输入设备、输出设备、总线等,CPU为微程序控制器类型),设计总体结构及数据通路框图。
2.设计模型机指令系统(含设计机器指令、微指令格式、每条指令所对应的微程序等)。
基本模型机要求实现5条机器指令。复杂模型机要求实现16条机器指令。
3.利用模型机指令系统,编写汇编语言程序,分别完成下列功能: (1)将数据输入开关上的数据在LED上显示出来。 (2)编程序完成功能:LED上的数从1以步长1往上递增。 (3)编程序完成功能:S=1+2+3+4+5+……,要求在LED上循环显示结果1、3、6、0A、……。调试、运行通过后将程序写在下面。
4.根据以上软硬件设计,在“TDN-CM++计算机组成原理教学实验系统”上调试,检测实现的功能是否达到设计要求。
5.撰写课程设计报告(文件名:学号姓名.doc),课程设计报告中所规定的图文齐全、符合要求、结构合理、文章通顺;能对实验中出现的问题提出改进意见并加以分析说明。
四、进度安排
本学期第15-16周。
5月25日-5月26日:资料查找、设计总体结构及数据通路框图。 5月27日-5月29日:设计模型机指令系统。 6月1日-6月3日:搭建模型机、整机调试。
6月4日-6月5日:资料整理、课程设计说明书编写。
3
五、完成后应上交的材料
课程设计说明书
六、总评成绩
指导教师
系 主 任
签名日期 年 月 日审核日期 年 月 日 4
目录
一、 实验一 基本模型机设计与实现···························6
1.1实验目的·····································6
1.2实验设备·····································6
1.3实验原理·····································6
1.4实验步骤·····································12
1.5实验内容·····································16
二、实验二 复杂模型机的设计与实现·····················18
2.1实验目的····································18
2.2实验设备····································18 2.3数据格式及指令系统··························18 2.4总体设计····································20 2.5实验步骤····································23 2.6实验内容····································27
三、实验心得··········································28
5
一、实验一 基本模型机设计与实现
1.1、实验目的
1.在掌握部件单元电路实验的基础上,进一步将其组成系统构造一台基本模型计算机。
2.为其定义5条机器指令,并编写相应的微程序,具体上机调试掌握整机概念。 1.2、实验设备
1.TDN-CM++计算机组成原理教学实验系统 1台 2.排线 若干 1.3、实验原理
部件实验过程中,各部件单元的控制信号是人为模拟产生的,而本次实验将能在微程序控制下自动产生各部件单元控制信号,实现特定指令的功能。这里,计算机数据通路的控制将由微程序控制器来完成,CPU从内存中取出一条机器指令到指令执行结束的一个指令周期全部由微指令组成的序列来完成,即一条机器指令对应一个微程序。
本实验采用5条机器指令:
IN ——输入 ADD——二进制加法 STA——存数 OUT——输出 JMP——无条件跳转
6
其指令格式如下(前4位为操作码): 助记符 IN 机器指令码 0000 0000 说明 Input Device中的开关状态 → R0 ADD addr 0001 0000 ×××××××× STA addr 0010 0000 ×××××××× OUT addr 0011 0000 ×××××××× JMP addr 0100 0000 ××××××××
其中IN为单字节字长(8位),其余为双字节字长,××××××××
addr → PC [addr] → LED R0 →[addr] R0+[addr] → R0 为addr对应的二进制地址码。
为了向RAM中装入程序和数据,检查写入是否正确,并能启动程序执行,
还必须设计三个控制台操作微程序。
1.存储器读操作(KRD):拨动清零开关CLR后,控制台开关SWB、SWA置为“0 0”时,按START微动开关,可对RAM连续手动读操作。
2.存储器写操作(KWE):拨动清零开关CLR后,控制台开关SWB、SWA置为“0 1”时,按START微动开关,可对RAM进行连续手动写入。
3.启动程序(RP):拨动清零开关CLR后,控制台开关SWB、SWA置为“1 1”时,按START微动开关,即可转入到第01号“取址”微指令,启动程序运行。
7
上述三条控制台指令用两个开关SWB、SWA的状态来设置,其定义如下:
SWB 0 0 1 SWA 0 1 1 控制台指令 读内存(KRD) 写内存(KWE) 启动程序(RP)
根据以上要求设计数据通路框图,如图1。微代码定义如表1所示。
图1 数据通路框图
24 23 22 21 20 19 18 17 16 15 14 12 11 9 8 7 6 5 4 3 2 1 13 S3 S2 S1 S0 M Cn WE A9 A8
8
10 B C uA5 uA4 uA3 uA2 uA1 uA0 A
A字段 B字段 C字段
15 14 13 选择 0 0 0 0 1 1 1 0 0 1 1 0 0 1 0 1 LDRi 12 11 10 选择
0 0 0 0 1 1 1 0 0 1 1 0 0 1 0 1 RS-B 0 RD-B 1 RI-B
9 0 0 0 0 1 1 1 8 0 0 1 1 0 0 1 7 选择 0 1 P(1) 0 P(2) 1 P(3) 0 P(4) 1 AR 0 LDPC 0 LDDR1 1 LDDR2 0 LDIR 1 LOAD 0 LDAR
0 299-B 1 ALU-B 0 PC-B
表1
系统涉及到的微程序流程见图5-2,当拟定“取指”微指令时,该微指令的判别测试字段P(1)测试。由于“取指”微指令是所有微程序都使用的公用微指令,因此P(1)的测试结果出现多路分支。本机用指令寄存器的前4位(IR7-IR4)作为测试条件,出现5路分支,占用5个固定微地址单元。
控制台操作为P(4)测试,它以控制台开关SWB、SWA作为测试条件,
出现了3路分支,占用3个固定微地址单元。当分支微地址单元固定后,剩下的其它地方就可以一条微指令占用控存一个微地址单元随意填写。(注意:微程序流程图上的单元地址为八进制)
当全部微程序设计完毕后,应将每条微指令代码化,表2即为将图2的微程序流程图按微指令格式转化而成的“二进制微代码表”。
9
图2
表2 二进制代码表
10
微地址 S3 S2 S1 S0 M Cn WE A9 A8 0 0 0 1 0 2 0 3 0 4 0 5 0 6 0 7 1 0 1 1 1 2 1 3 1 4 1 5 1 6 1 7 2 0 2 1 2 2 2 3 2 4 2 5 2 6 A 0 0 0 1 1 0 1 0 0 1 1 0 0 1 1 0 1 0 0 0 1 1 1 0 0 0 1 1 1 0 1 1 0 1 1 0 1 1 0 0 0 0 1 1 0 0 1 0 1 1 0 1 1 0 0 1 0 0 0 0 0 1 0 0 0 0 B 0 0 0 1 1 0 0 0 0 0 0 0 0 0 0 0 0 1 1 0 1 0 0 0 0 0 0 1 1 0 1 1 0 1 1 0 1 1 0 0 0 1 0 0 0 0 0 0 1 1 0 1 1 0 0 0 0 0 0 0 0 0 0 1 0 1 C 1 0 0 1 1 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 1 0 1 1 0 1 1 0 1 1 0 0 0 0 0 0 0 0 0 0 1 1 0 1 1 0 0 0 0 0 0 0 0 0 0 0 0 0 UA5-UA0 0 1 0 0 0 0 0 0 0 0 0 0 0 1 1 0 0 0 0 0 0 0 1 1 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 1 1 1 0 0 1 0 1 0 1 1 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 1 0 0 0 0 0 0 0 1 1 0 0 0 0 0 0 0 1 1 0 0 0 0 0 0 0 1 1 0 0 0 0 0 0 1 0 1 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 1 1 0 0 0 0 0 0 0 1 1 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 1 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 1 1 0 0 0 0 0 1 0 0 0 1 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 1 0 1 0 0 0 0 0 0 1 0 1 0 0 1 0 0 1 0 0 1 0 0 0 0 0 1 1 0 0 0 1 0 1 1 1 0 0 0 1 1 0 1 0 0 1 0 1 1 1 1 1 1 1 0 1 1 0 0 0 1 1 1 1 1 0 1 0 1 0 1 0 0 1 1 1 0 0 1 0 0 0 0 0 1 1 0 1 0 0 0 1 1 0 0 0 0 11 0 0 1 0 0 0 0 0 0 0 0 1 2 7 3 0
0 0 0 0 0 1 1 1 0 0 0 0 0 0 1 1 0 1 0 0 0 0 0 0 1 0 1 1 0 1 0 0 0 0 0 0 0 1 0 0 1 0 0 0 0 0 0 1 下面介绍指令寄存器IR:指令寄存器用来保存当前正在执行的一条指令。当执行一条指令时,先把它从内存取到缓冲寄存器中,然后再传送至指令寄存器。指令划分为操作码和地址码字段,由二进制数构成,为了执行任何给定的指令,必须对操作码进行测试[P(1)],通过节拍脉冲T4的控制以便识别所要求的操作。“指令译码器”(实验板上标有“INS DECODE”的芯片)根据指令中的操作码强置微控器单元的微地址,使下一条微指令指向相应的微程序首地址。
本系统有两种外部I/O设备:一种是二进制代码开关,它作为输入设备(Input Device)。另一种是数码块,它作为输出设备(Output Device)。例如:输入时,二进制开关数据直接经过三态门送到总线上,只要开关状态不变,输入的信息也不变。输出时,将输出数据送到数据总线上,当写信号(W/R)有效时,将数据打入输出锁存器,驱动数码块显示。
1.4、实验步骤
1. 按图3连接实验线路。
12
图3
2.在计算机上编写程序,并下载到下位机。
程序功能:将数据开关的数据与OAH单元的数据相加,将结果在数码管
13
上显示出来。本实验设计机器指令程序如下 地址(二进制) 内容(二进制) 0000 0000 0000 0000 程序 $P0000 IN R0 R0 0000 0001 0000 0010 0000 0011 0000 0100 0000 0101 0000 0110 0000 0111 0000 1000 0000 1010
按照规定格式,将机器指令及表2微指令二进制表编辑成十六进制的如下格式文件。微指令格式中的微指令代码为将表2中的24位微代码按从左到右分成3个8位,将此三个8位二进制代码化为相应的十六进制数即可。
程 序
$P0000 机器指令格式说明: $P0110 $P×× ××
$P020A 前两位为十六进制地址 $P0320 后两位为机器指令代码 $P040B $P0530 $P060B $P0740 $P0800 $P0A01
14
助记符 说明 “Input Device”→ 0001 0000 0000 1010 0010 0000 0000 1011 0011 0000 0000 1011 0100 0000 0000 0000 0000 0001 $P0110 ADD [OAH],R0 $P020A $P0320 STA R0,[0BH] $P040B $P0530 OUT [OBH] $P060B $P0740 JMP OOH $P0800 $P0A01 01H → [0A] OOH → PC [OBH] → LED R0 → [OBH] R0+[OAH] → R0 微程序
$M00018110 微指令格式说明: $M0101ED82 $M ×× ×××××× $M0200C048 前两位为十六进制地址 $M0300E004 后六位为微指令代码 $M0400B005 $M0501A206 $M06959A01 $M0700E00D $M08001001 $M0901ED83 $M0A01ED87 $M0B01ED8E $M0C01ED96 $M0D028201 $M0E00E00F $M0F00A015 $M1001ED92 $M1101ED94 $M1200A017 $M13018001 $M14002018 $M15070A01 $M1600D181 $M17070A10 $M18068A11
用联机软件的装载功能将该文件(C:\\TangDu\\CMPP\\Sample\\Ex1.txt)传入实验系统即可。
3.运行程序
①将实验板上“STATE UNIT”中的“STEP”开关置为“EXEC”状态,“STOP”开关置为“RUN”状态。编程开关置为“RUN”状态。 ②SWB、SWA开关设置为“11”。
③拨动CLR开关(1→0→1),清微地址及程序记数器。然后按动START,
系统连续运行程序,观察结果是否正确。
15
1.5、实验内容
1.将存储单元0A中写入数据3BH,并在LED上显示出来。 序号 01 02 03
2.将数据输入开关上的数据在LED上显示出来。 序号 01 02 03 04 机器指令 $P0000 $P0120 STA R0,[0AH] R0 → [0AH] $P020A $P0330 OUT [0AH] $P040A $P0540 JMP 00H $P0600 注意: 程序运行过程中不断改变数据输入开关的数据,LED上显示的数据也随之改变。
3.编程序完成功能:LED上的数从1以步长1往上递增。 序号 01 02
机器指令 $P0030 助记符 OUT [0AH] 说明 [0AH] → LED $P010A $P0240 JMP 00H $P0300 $P0A3B 3BH存入[0AH]单元 00H → PC 助记符 IN R0 说明 数据开关数据 → R0 [0AH] → LED 00H → PC 机器指令 $P0000 $P0120 助记符 IN R0 说明 数据开关数据 → R0 STA R0,[0BH] R0 → [0BH] 16
03 05 06 07 $P020B $P0330 OUT [0BH] $P040B $P0510 ADD [OC],R0 $P060C $P0740 JMP 01H $P0801 $P0C01 01H → [0C] 01H→PC R0+[OCH] → R0 [0BH] → LED 4.编程序完成功能:S=1+2+3+4+5+……,要求在LED上循环显示结果1、3、6、0A、……。调试、运行通过后将程序写在下面。 序号 01 02 03 04 05 06 07 08
17
机器指令 $P0000 $P0110 助记符 IN R0 ADD [OC],R0 说明 数据开关数据 → R0 R0+[ODH] → R0 $P020D $P0320 STA R0,[0DH] $P040D $P0510 ADD [OE],R0 $P060E $P0730 STA R0,[0EH] $P080E $P0940 JMP 00H $P0A00 $P0D00 $P0E00 00H → [0D] 00H → [0E] 00H→PC R0 → [0EH] R0+[OEH] → R0 R0 → [0DH] 二、实验二、复杂模型机的设计与实现
2.1 、实验目的
综合运用所学计算机原理知识,设计并实现较为完整的计算机。 2.2 、实验设备
TDN-CM++计算机组成原理教学实验系统一台,排线若干。 2.3、数据格式及指令系统
1) 数据格式
模型机规定采用定点补码表示法表示数据,且字长为8位,其格式如下:
7 符号 6 5 4 3 2 1 0 数 据 其中,第7位为符号位,数值表示范围是:-1≤X<1。 2) 指令格式
模型机设计4大类指令共16条,其中包括算术逻辑指令、I/O指令、访问及转移指令和停机指令。 (A) 算术逻辑指令
设计9条算术逻辑指令并用单字节表示,寻址方式采用寄存器直接寻址,其格式如下:
7 6 5 4 3 2 1 0 Rd OP-CODE Rs 其中,OP-CODE为操作码,Rs为源寄存器,Rd为目的寄存器,并规定:9条算术逻辑指令的名称、功能和具体格式见表14。
(B) 访问指令及转移指令
模型机设计2条访问指令,即存数(STA)、取数(LDA);2条转移指令,
18
即无条件转移(JMP)、结果为零或有进位转移指令(BZC)。
设计9条算术逻辑指令并用单字节表示,寻址方式采用寄存器直接寻址,其格式如下:
7 6 0 0 5 4 3 2 1 0 Rd M OP-CODE D 其中,OP-CODE为操作码, Rd为目的寄存器,D为位移量(正负均可),M为寻址方式,其定义如下:
寻址方式 有效地址 00 01 10 11 (C) 输入输出指令
7 6 5 4 3 2 1 0 Rd E=D E=(D) E=(R2)+D E=(PC)+D 说 明 直接寻址 间接寻址 R2 为变址寻址 相对寻址 OP-CODE addr 其中,addr=01 时,选中“INPUT DEVICE”中的开关组作为入设备,addr=10时,选中OUTPUT DEVICE中的数码快作为输出设备。 (D) 停机指令
格式如下:
7 6 5 4 OP-CODE 3 2 0 0 1 0 0 0 这类指令只有1条,即停机指令HALT。
3) 指令系统
本模型机共有16条基本指令。其中,算术逻辑指令7条,访问内存指
19
令和程序控制指令4条,输入输出指令2条,其他它指令1条。表5列出了各条指令的格式、汇编符号、指令功能。
2.4 、总体设计
本模型机的数据通路如图4所示。根据机器指令系统要求,设计微程序流程图及确定微地址,如图6所示。
按照图18所示的微指令格式参照指令流程图,将每条微指令代码化,译成二进制代码表,并将二进制代码转换为联机操作时的十六进制格式文件。
表3 指令系统编码 序号 汇编符号 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16
实验程序如下: 程序 助记符
20
指令格式 0111 00 Rd 1000 RS Rd 1001 RS Rd 1010 RS Rd 1011 -- Rd 1100 RS Rd 1101 00 Rd 1110 00 Rd 1111 Rs Rd 功能说明 0→Rd RS→Rd Rs+Rd+Cy→Rd Rs-Rd-Cy→Rd Rd+1→Rd Rs∧Rd →Rd Rd →Rd Rd带进位右循环一位,RS→Rd Rd带进位左循环一位,RS→Rd CLR Rd MOV RS,Rd ADC RS,Rd ABC RS,Rd INC Rd AND RS,Rd COM Rd RRC RS,Rd RLC RS,Rd LDA M,D, Rd STA M,D, Rd JMP M,D BZC M,D IN addr, Rd OUT addr, Rd HALT 00 M 00 Rd,D E→RS 00 M 01 Rd,D Rd→E 00 M 10 00,D E→PC 00 M 11 00,D 当CY=1或或=1时,E→PC 0100 01 Rd 0101 10 Rd 0110 00 00 addr→Rd Rd→addr 停机 $P0044 IN 01, R0 $P0146 IN 01,R2 $P0298 ADC R2,R0 $P0381 MOV R0,R1 $P04F5 RLC R1,R1 $P050C BZC 00,00 $P0600 微程序
$M00018108 $M0101ED82 $M0200C050 $M0300A004 $M0400E0A0 $M0500E060
$M0600A007
$M0700E0A0
$M0801ED82
$M0901ED8C
$M0A00A03B
$M0B018001
$M0C00203C
$M0D00A00E
$M0E01B60F $M0F95EA25
$M1001ED83 $M1101ED85 $M1201ED8D $M1301EDA6 $M14001001 $M15030401 $M2205DB81 $M16018016 $M230180E4 $M173D9A01 $M24018001 $M18019201 $M1901A22A $M2600A027
$M1A01B22C $M1B01A232 $M1C01A233 $M1D01A236 $M1E318237 $M1F318239 $M20009001 $M21028401$M2595AAA0 $M2701BC28 $M2895EA29 $M2995AAA0
$M2A01B42B $M2B959B41
$M2C01A42D $M2D65AB6E $M2E0D9A01 $M2F01AA30 $M300D8171 $M31959B41 $M32019A01 $M3301B435 $M3405DB81 $M35B99B41 $M360D9A01 $M37298838 $M38019801 $M3919883A $M3A019801 $M3B070A08 $M3C068A09
21
图 4 复杂模型机微程序流程图
22
、实验步骤
(1) 按图5连接实验线路,仔细查线无误后,接通电源。
图5复杂模型机实验接线图
23
2.5
图6 复杂模型机数据通路图
(2) 写 微程序:与PC联机,将实验微程序装入TDN-CM++机中或脱机时手动将本实验微程序写入TDN-CM++中。手动写入的具体方法如下; (A) 编程
① 将编程开关置为PROM(编程)状态。
② 将实验板上STATE UNIT中的STEP置为“STEP”,STOP置为“RUN”状态。
③ 用二进制模拟开关置微地址μA5~μA0 (如图22须将此六线排针接开关单元)。
④ 在MK24~MK1开关上置微代码,24位开关对应24位显示灯,开
关量为“0”时灯亮,开关量为“1”时灯灭。
⑤ 启动时序电路(按动启动按纽START),即将微代码写入到E2PROM
2816的相应地址对应的单元中.
24
⑥ 重复③~⑤步骤,将本实验给出的十六进制格式文件转换的二进制代码写入2816。 (B) 校验
① 将编程开关设置为READ(校验)状态。
② 将实验板的STEP开关置为“STEP”状态,STOP开关置为“RUN”状态。
③ 用二进制开关置好微地址μA5~μA0。
④ 按动START键,启动时序电路,读出微代码.观察显示灯MD24~
MD1的状态(灯亮为“0”,灭为“1”),检查读出的微代码是否与写入的相同。如果不同,则将开关置于PROM编程状态,重新执行(A)即可。
(C) 写程序
方法一;手动写入。
使用控制台KWE和KRD微程序进行机器指令程序的装入和检查。 :
① 使编程开关处于“RUN”,STEP为“STEP”状态,STOP为“RUN”状态。
② 拨动总清开关CLR(0→1),微地址寄存器清零,程序计数器清零,然后控制台SWB、
SWA开关置为“0 1”,按动一次启动开关START,微地址显示灯显示“001001”,再按动一次START,微地址灯显示“001100”,此时数据开关的内容置为要写入的机器指令,按动两次START键后,即完成该条指令的写入。若仔细阅读KWE的流程,就不难发现,机器指令的首地址总清后为00H,以后每个循环PC自动加1,所以,每次按动START,只有在微地址灯显示“001100”时,才设置内容,直到所有机器指令写完。
25
③ 写完程序后须进行校验。拨动总清开关CLR(0→1)后,微地址清零。PC程序计数器清零,然后使控制台开关SWB,SWA为“0 0”,按动启动START,微地址灯将显示“001000”;再按START,微地址灯显示为“001010”;第3次按START,微地址灯显示为“111011”;再按START后,此时输出单元的数码管显示为该首地址中的内容。不断按动START,以后每个循环PC会自动加1,可检查后续单元内容。每次在微地址灯显示为“001000”时,是将当前地址中的机器指令写入到输出设备中显示。
方法二:联机读/写程序。
使用软件中的F4—LOAD功能装入机器指令格式文件或F2 _ R/W PR功能逐条写入。 (5) 运行程序。 (A)单步运行程序
① 使编程开关处于“RUN”状态,STEP为“STEP”状态,STOP为“RUN”状态。
② 拨动总清开关CLR(0→1),微地址清零,程序计数器清零,程序首址为00H。
③ 单步运行一条微指令,每按动一次START键,即单步运行一条微指令。对照微程序流程图,观察微地址显示灯是否和流程一致。 (B)连续运行程序
① 使STATE UNIT中的STEP开关置为“EXEC”状态,STOP开关置为“RUN”状态。
② 拨动CLR开关,清微地址及程序计数器,然后按动START,系统连续运行程序,稍后将STOP拨至“STOP”时,系统停机。
* 若联机运行程序时,进入DEBUG调试界面,总清开关CLR(0→1)清零后,程序首址为00H,按相应功能键即可联机运行、调试程序。(软件
26
使用说明请看10.8)
* 采用单步或连续运行方式执行机器指令,参照机器指令及微程序流程图,将实验现象与理论分析比较,验证系统执行指令的正确性。 2.6 、实验内容
1.编程序完成功能:LED上的数从1以步长1往上递增。 序号 01 02 03 04 05 06 机器指令 $P0071 $P0144 $P0291 $P0359 $P0408 JMP 02H $P0602 02H→PC 助记符 CLR R1 IN 01,R0 ADC R0,R1 OUT R1 0 → R1 01→R0 R0+R1+Cy→R1 R1→LED 说明 2.编程序完成功能:S=1+2+3+4+5+……,要求在LED上循环显示结果1、3、6、0A、……。调试、运行通过后将程序写在下面。 序号 01 02 03 04 05 06 07
27
机器指令 $P0071 $P0170 $P02B0 $P0391 $P0459 $P0508 助记符 CLR R1 CLR R0 INC R0 ADC R0,R1 OUT R1 JMP 02H 0 → R1 0 → R0 R0+1→R0 说明 R0+R1+Cy→R1 R1→LED 02H→PC $P0602 三、实验心得
这次通过实验的方法来学习计算机原理这门课程,感觉受益匪浅。开始看计算机原理,觉得很多东西匪夷所思,不可理解,更不用提这次试验了。很多原理性的东西如果不是真正和硬件结合起来,只限于纸上谈兵,或者只作些简单的照搬模式的小实验,那么事隔一段时间,恐怕很难有什么知识能在头脑中留下什么印象。完成这次研制工作后,我们对很多原理有了更加感性化的认识,并且体会到了手工设计的艰辛,锻炼了动手能力和严谨求实的科学作风。实验使我们对这门课的兴趣增加了,希望能有时间做一些更加深入的探索和研究。
做实验前要先阅读实验指导书,对TDN-CM++计算机组成原理教学实验系统有一个整体的认识,了解教学机中各个组件的作用和软件的原理和使用方法,站在比较高的地方看,才会掌控全局,事半功倍。
整个实验与其说是一个知识的学习过程,不如说是一个对所学知识的实践和加深理解的过程,当然在实验的过程中也可以学习新的知识,但是应该在动手实验之前先把知识系统地理解和掌握好。我们在实验之前就已经对基本模型机的基本原理以及复杂模型机的基本知识学习过,出了问题很快找到解决的方法,学习新的问题时也会有更深层次的理解。
我们在实验的过程中也碰到过问题,但是由于动手做之前知识已经系统地掌握了,很快就可以循序渐进的找到问题的所在然后解决,也学到了东西。假如没有知识上的储备就冒然实验的话,必然会碰到很多问题,而很多问题的表现形式很不直观,如果知识又没掌握好,就很难调试成功,修改也不知从何下手。即使偶然成功了,恐怕知识也没有学到,这种侥幸的成功不是我们的目标。
本次实验2人一组,既是减轻个人的工作负担,又是培养团结协作的能力。未来的研究工作中,TEAMWORK是非常重要的一点。作为投身计算
28
机事业、未来从事科学研究的我们,在本科时期开始培养这种能力是非常必要的。
因此在这次实验的过程中,我们重视协作。在统一思想后,2个人一起接线和程序设计。由于最初的准备知识大家都比较充足,所以每个人在实践的过程中都得到了其他人的大量的支持。在组内我们形成了良好的互相协助、互相指导、互相学习的气氛,这也是我们可以快速完成实验的原因之一。在设计过程中发现的问题共同解决,在前期减少了很多错误。大家齐头并进,相互支持,使得我们实验进行得很顺畅,并且我们之间的友谊也得到的增强。
如何在困难面前保持耐心和信心,如何自始至终的严格要求自己,如何不知满足的寻求创新,都是我们在这个简单又复杂的计原大实验中体会与修炼的。
29
因篇幅问题不能全部显示,请点此查看更多更全内容