计算机组成原理实验手册TEC.docx
- 文档编号:12752961
- 上传时间:2023-04-21
- 格式:DOCX
- 页数:30
- 大小:6.14MB
计算机组成原理实验手册TEC.docx
《计算机组成原理实验手册TEC.docx》由会员分享,可在线阅读,更多相关《计算机组成原理实验手册TEC.docx(30页珍藏版)》请在冰豆网上搜索。
计算机组成原理实验手册TEC
TEC-2000使用手册
教学机使用方法简介
摘要:
一、设置左下方5个开关状态,确定实验箱的工作模式
二、选按RESET键,再按START键教学机开始工作
教学机与PC机的互联
摘要:
一、教学机和PC机通过RS-232串行口通信。
二、教学机使用其固化在ROM上的监控程序与PC机运行的仿真终端程序PCEC16通信。
三、使用PCEC主要可完成以下功能
1、通过PC机向教学机加载程序
2、向监控程序发送调试命令,使之控制程序在教学机中的运行,可令程序单步运行、连续运行等,控制方法参见监控程序一节。
仿真终端程序PCEC
监控程序
PCEC与监控程序的通信方法
一、PCEC与监控程序的通信
1、PCEC在接到串行口数据(8位)时的动作(教学机送来的):
将接收到的数据当成ASCII码,在屏幕上显示对应的字符。
2、监控程序在接到串行口数据时的动作(PC机上的PCEC送来的):
若接到的字符为A/U/G/T/R/E/D这7个监控命令,则继续接收命令的剩余字符,直到收到回车符,则接收一条完全的命令,接下来根据收到的命令做相应的操作。
例如,收到的是A命令,则继续接收程序的机器码,并将这些机器码放到指定的内存地址;若收到的是G命令,则跳去执行用户程序,直至执行到用户程序的RET指令,返回监控程序继续执行;若是U命令,则将目标地址的指令进行反汇编,将反汇编结果发送给PCEC显示……
二、PCEC与教学机上的用户程序的通信
1、用户在PC机上(PCEC运行在前台)按下键盘按键,该键的ASCII码会被PCEC发送给教学机的串行通信控制器8251,8251将接收下来的ASCII码存放在其数据输入寄存器(端口号80H),用户程序只要读80H(IN80H)端口,即可获得PC按键的ASCII码(R0低8位)。
2、用户程序若要在PC机的PCEC窗口显示一个字符,只需将该字符的ASCII码存放在R0的低8位,然后用OUT80H将R0的值送到80H端口(8251的数据输出寄存器端口号),则接下来8251会自动将该ASCII码发给PCEC,PCEC收到ASCII码后即会将其显示在其窗口中。
汇编编程
在仿真终端下,使用监控程序提供的A命令逐行编程
例1、
例2、
例3、
小结
一、每个程序最终必需以RET指令结束,使得程序结束后返回去运行监控程序
二、80H、81H两端口分别是串行通信控制器8251的数据端口与状态端口,对它们进行读写能达到以下功能
1、读80H端口(IN80H),可使教学机监控程序向PCEC读取用户在PC键盘上按下按键对应的ASCII码,存储到R0寄存器
2、写80H端口(OUT80H),可使教学机监控程序将R0的值发送给PCEC,PCEC将接收到的值当做ASCII码,将相应字符显示在PC机显示器上
3、读状态端口(IN81H),可得到串行通信控制器8251的状态字,其D0位用于指示数据是否发送就绪(D0=1发送就绪),D1位用于指示数据是否接收就绪(D1=1接收就绪),这里的8251是教学机COM1对应的那片8251,发送和接收指教学机的发送接收。
串行通信控制器8251状态寄存器的状态位:
使用汇编源程序编程
摘要
一、在PC机上用文本编辑器编写教学机汇编源程序
二、在PC机上用交叉汇编程序ASEC编译教学机源程序,生成教学机可执行代码
二、通过PCEC将教学机可执行代码加载到教学机内存中
交叉汇编程序
教学机编程源文件格式示例
例1、
org2000h
mvrdr0,44h
out80h
jr2000h
ret
end
例2、
ORG2000H
MVRDR2,0AH
MVRDR0,30H
OUT80H
DECR2
JRZ200EH
PUSHR0
IN81H
SHRR0
JRNC2008H
POPR0
INCR0
JR2004H
RET
END
教学机汇编编程小结
1、可使用标号做跳转,标号字符数不可太长(8位?
)
org2000h
test:
mvrdr0,44h
out80h
jrtest
ret
end
2、可使用标号指示子程序入口,标号字符数不可太长(8位?
)
org2000h
mvrdr0,44h
out80h
calaxx
…
ret
xx:
pushr0
…
ret
end
mvrdR14,1234h
org2000h
mvrdr0,44h
out80h;将R0保存的ASCII字符显示在PC机的屏幕上
jr2000h
ret
end
教学机内存空间用法:
0000~FFFFH:
可寻址64K内存地址空间,但其中只有部分的地址空间对应物理存储单元。
0000~1FFFH:
ROM(8K字*16位),保存监控程序
2000~27FFH:
RAM(2K字*16位)
2000~25FFH:
1.5K字
2600~27FFH:
0.5k字,监控程序专用
实验一、TEC-2000汇编语言程序设计
实验目的
1.学习和了解TEC-2000十六位机监控命令的用法;(参考实验指导书P116)
2.学习和了解TEC-2000十六位机的指令系统;
3.学习TEC-2000十六位机汇编程序设计。
实验设备
TEC-2000教学机和PC机各一台
实验内容
1.熟悉教学机的组成,完成教学机与PC机互联(具体步骤见实验参考)。
2.熟悉监控命令的使用(具体步骤见实验参考)。
3.汇编程序设计
a)设计一个小程序,从键盘上接收一个字符并在屏幕上输出显示该字符。
b)编程将Fibonacci数列的前20个数顺序存放在主存地址为2200H~2213H单元内。
c)编程在屏幕上显示Fibonacci数列的前20个数(显示数值的二进制码即可)。
注意事项
内存:
只能使用2000~27FF这个空间
R:
不用能R4,R5
默认数制是16进制
0,1,逗号的ascii码分别为30H,31H,2CH
预习要求
1.熟悉教学机的基本指令集
2.实验前仔细阅读本文档的“TEC2000使用手册”
3.提交实验预习报告,其中给出“实验报告格式”一~四的内容。
实验报告格式
一、实验目的
二、实验设备
三、实验内容
四、汇编程序设计:
给出程序源代码
五、实验小结
实验参考
一、教学机与PC机互联
1.关闭电源,将TEC2000上的COMl口与PC机的串口相连;
2.接通电源,在PC机上运行PCEC.EXE文件,设置所用PC机的串口为“l”或“2”,其它的设置一般不用改动,直接回车即可;
3.置控制开关为00101(连续、内存读指令、组合逻辑、16位、联机),开关拨向上方表示“1”,拨向下方表示“0”,“X”表示任意。
其它实验相同;
4.按一下“RESET”按键,再按一下“START”’按键,主机上显示:
TEC-2000CRTMONITOR
Version2.02001.10
ComputerArchitectureLab.,TsinghuaUniversity
CopyrightJasonHe
>
二、监控命令的使用
1.用R命令查看寄存器内容或修改寄存器的内容
1)在命令行提示符状态下输入:
R↙;显示寄存器的内容
注:
寄存器的内容在运行程序或执行命令后会发生变化。
2)在命令行提示符状态下输入:
RR0↙;修改寄存器R0的内容,被修改的寄存器与所赋值之间可以无空格,也可有—个或数个空格
主机显示:
寄存器原值:
xxxx
在后面输入新的值0036
再用R命令显示寄存器内容,则R0的内容变为0036。
2.用D命令显示存储器内容
在命令行提示符状态下输入:
D2000↙
会显示从2000H地址开始的连续120个字的内容;
连续使用不带参数的D命令,起始地址会自动加120(即78H)。
3.用E命令修改存储器内容
在命令行提示符状态下输入:
E2000↙
屏幕显示:
2000xxxx(地址单元的原有内容):
(光标在此闪烁等待输入)
输入0000
(提示快捷使用方法:
用E命令连续修改内存单元的值时,每修改完—个,按一下空格键,系统会自动给出下一个内存单元的值,等待修改;按回车键则退出E命令。
)
依次改变地址单元2001~2005的内容为:
11112222333344445555
用D命令显示这几个单元的内容
D2000↙
可以看到这六个地址单元的内容变为000011112222333344445555。
4.用A命令键入一段汇编源程序,主要是向累加器送入数据和进行运算,执行程序并观察运行结果。
1)在命令行提示符状态下输入:
A2000↙;表示该程序从2000H(内存RAM区的起始地址)地址开始
屏幕将显示:
2000:
输入如下形式的程序:
2000:
MVRDR0,AAAA;MVRD与R0之间只有一个空格,其他指令相同
2002:
MVRDR1,5555
2004:
ADDR0,R1
2005:
ANDR0,R1
2006:
RET;程序的最后一个语句,必须为RET指令
2007:
↙;直接敲回车键,结束A命令输入程序的操作过程
若输入有误,系统会给出提示并显示出错地址,用户只需在该地址重新输入正确的指令即可。
2)用U命令反汇编刚输入的程序
在命令行提示符状态下输入:
U2000↙
在相应的地址会得到输入的指令及其操作码。
注:
连续使用不带参数的U命令时,将接着从上一次反汇编的最后一条语句之后继续反汇编。
3)用G命令运行前面刚键入的源程序
G2000↙
程序运行结束后,观察程序的运行结果,记录寄存器R0和R1的值。
R0=?
R1=?
4)用P或T命令,单步执行这段程序,观察指令执行结果
在命令行提示符状态下输入:
T2000↙
寄存器R0=?
T↙
寄存器R1=?
T↙
寄存器R0=?
T↙
寄存器R0=?
用P命令执行过程同上。
注:
T总是执行单条指令,但执行P命令时,则把每一个CALL语句连同被调用的子程序一次执行完成。
T、P命令每次执行后均显示所有通用寄存器及状态寄存器的内容,并反汇编出下一条将要执行的指令。
实验二、脱机运算器部件实验
实验描述参见下图的“6.2脱机运算器部件实验”,对其做如下修改
3.实验内容
1)拨动开关置为1xx00(16位机)
2)D1取为0101H,D2取为1010H
实验预习报告:
填表6-1的ALU控制信号
操作参考
实验三、微程序控制器
实验目的
通过设计一条指令的微程序,深入理解微程序控制器的工作原理。
实验设备
运行TEC-2000模拟软件的PC机。
实验内容
为TEC-2000新增一条指令,其功能为将两个内存单元的内容相加,结果写回其中一个内存单元。
预习要求
1、说明上述指令的指令格式并为其分配指令操作码(不能与基本、扩展指令集中的任一指令操作码相同)
2、给出上述指令的执行周期微程序编码,并为其中的每一条微指令分配微地址
3、说明实现上述指令应修改MAPROM存储单元的地址和值。
实验参考:
一、教学计算机微程序控制器模拟程序使用说明
运行“16位机微程序模拟程序.exe”,将出现图2-1所示界面。
图2-1TEC-2000微程序模拟主界面
界面的最左边是功能区,设置了程序的主要功能按钮,下面将介绍这些按钮的功能和使用方法。
中间部分是用户程序区,用做调试的用户程序将在程序区中显示,供调试过程中查看。
右边的上半部分是输出窗口,可看成是TEC-2000教学计算机的显示器,按下“显示ROMS内容”按钮后,将被切换为显示各ROM的二进制数值。
下半部分是模拟程序的输出,主要包括当前运行程序的指令字、程序状态字、各通用寄存器的值,以及ALU的输出结果,这些,可供用户调试程序时观察程序运行的结果。
使用模拟程序主要是对用户设计的微程序方案进行仿真运行,以检验方案的正确性。
因此,首先要装入用户设计的微程序,它采用的是和真正要在硬件的控制存储器上烧制的格式,即全部微程序方案由MAPROM、ROM1~ROM7共8个二进制文件组成。
这些文件可用UltraEdit软件编写,也可自行编制程序完成由文本格式到二进制数据格式的转换后生成。
准备好MAPROM、ROM1~ROM7共8个二进制文件后,将它们存放在一个文件目录下。
然后,按图5-1中界面上的“导入各ROM文件”按钮,在图5-2所示界面上选定这8个文件(文件名必须按照上述名称给定,并以.bin为文件后缀),按“打开”按钮,将装入用户设计的微程序方案。
以后的操作,均是对本方案的各种机器语言程序运行过程的模拟。
图5-2装入微程序方案
微程序方案装入完成后,可点击“显示各ROMS内容”按钮,进行查看和检查,如图5-3所示。
若发现错误,可直接在界面上修改。
修改后注意按“Update”按钮保存。
图5-3查看或修改微程序界面
按“显示输出窗口”按钮可返回主界面。
为检查、验证微程序方案的正确性,需要对微程序实现的指令系统中全部指令进行模拟运行,检查运行结果是否正确。
这一过程可用简单的机器语言程序来完成,如我们可以用如下程序来验证MVRD、ADD及RET三条指令的正确性。
MVRDR0,0
MVRDR1,1
ADDR0,R1
RET
将指令系统中所有指令都验证完后,可得到微程序方案基本设计正确的结论。
此时,可尝试进行加载监控程序并运行,这样,整个教学计算机将在用户设计的微程序控制器的控制下运行。
为方便用户输入程序,教学计算机模拟系统支持汇编语言(如用户使用TEC-2000规定的基本指令集)、文本形式的二进制机器语言程序(对一些用户自行扩展的指令,交叉汇编程序不能汇编,此时可采用这种方式)和纯二进制机器指令程序(即真正的机器语言程序)。
下面分别介绍它们的使用过程。
汇编语言程序是符号化的机器语言,与机器语言相比,更方便进行人机交流。
通过“导入汇编文件”按钮或“文件”菜单项中的“导入汇编文件”项,将汇编语言程序读入到系统中,然后,再使用“交叉汇编”按钮,对该汇编语言程序进行交叉汇编。
此时,系统界面如图5-4所示,可以对该汇编语言程序进行连续、单指令或单步骤执行。
图5-4装入汇编语言程序并交叉汇编
汇编语言程序虽然比较直观,但受交叉汇编的限制,只能是使用TEC-2000的基本指令且是规定的操作码。
对用户自行扩展的指令,或者是改变了指令的操作码,则无法直接使用汇编语言程序,只能使用机器语言程序。
机器语言程序一般应是二进制格式,直接装入到主存储器中运行,这样,对用户编写程序就不是很方便,写出0、1的代码后,还要事先转换成二进制格式才能装入。
为此,教学计算机模拟系统支持用户用0、1代码编写的机器语言程序(文本形式),由模拟系统本身进行到二进制的转换。
例如,我们可以用下面的机器语言文本文件来替换前面的汇编语言程序。
1000100000000000
0000000000000000
1000100000010000
0000000000000001
0000000000000001
1000111100000000
这些机器指令由前面的汇编语言程序对应而来,使用的是TEC-2000缺省定义的操作码。
将这些内容保存为文本文件后(以.txt)为后缀,选择“文件”菜单项中的“导入机器指令的汇编文件”项,可将程序装入到系统中。
系统将自动完成该程序从文本文件到二进制机器指令的转换。
当然,本系统也可直接装入二进制机器指令运行,这可以将一些已经是机器指令的程序直接装入到系统中运行。
程序在模拟系统中运行正确后,也可以用做在实际的教学计算机上,用来进行硬件调试(此类文件一般应以.COD或.BIN作为后缀)。
选择“文件”菜单项中的“导入机器指令的汇编文件”项,可将程序装入到系统中。
需要说明的是,监控程序也可以采用这种方式装入。
所有的指令均检查无误后,可以把监控程序作为对微程序设计方案的一个总的测试对象。
选择“文件”菜单项中的“加载监控程序”项,可将监控程序装入到系统中。
程序装入完成后,可使用“Reset”按钮,启动程序的运行。
可用“连续执行”按钮将程序完整的执行,也可使用“单指令执行”按钮单独执行一条指令,还可以用“单步执行”按钮单独执行一个微操作。
“单指令执行”和“单步执行”时,可通过观察各输出结果,判断程序执行的正确性。
若不正确,可能是微程序设计方案有错误,可通过前面介绍的查看和修改微程序界面,修改微程序,再进行进一步的调试,直到程序能正常运行。
最后,可通过运行监控程序来进行较大规模的检验。
二、微程序控制器指令扩展示例
下面,以在现有TEC-2000教学计算机微程序控制器基础上,扩展指令ADCDR,SR为例,说明实验的步骤。
(1)指令功能和格式的确定
ADCDR,SR指令的功能是,将SR中的值用作源操作数、DR的值用作目的操作数,并把状态寄存器中C标志位的值作为最低位进位输入完成求和运算,结果存入目的寄存器DR中,即DR←DR+SR+C。
指令格式可确定为操作码(8位),DR(4位),SR(4位)。
由于它的功能在取指之后可一步完成,我们把它归为A组指令,分配操作码为00100000。
指令寻址方式显然为寄存器寻址。
(2)指令步骤划分
与ADD指令类似,ADC指令也划分为以下3个步骤:
(i)AR←PC
(ii)读主存,IR←读出内容
PC←PC+1
(iii)DR←DR+SR+C,保存状态信息
结束,检测中断请求,无中断请求,进入下一条指令的执行过程。
(3)给出每个步骤的控制信号
我们发现,上面的(i)(ii)两步都可借用原有微程序的段,只有(iii)的控制信号需要设计。
根据教学计算机的要求,各部件要求的控制信号设计如下:
CI3~0SCC3~00MRW0I2~0SAI8~6SBI5~3B口A口0SSTSSHSCIDC2DC1
001100000100000110111000000000000001001000000000
另外,(iii)结束后,将和其他指令一样,转到检测中断请求的操作,所以,该条微指令的下地址字段值应为00110000(也就是16进制的30)。
(4)将设计好的微程序段加入到原有微程序中
首先,应确定该段微程序的微地址,我们可以选择一个原有微程序中没有使用的微地址如50,来存放该段微程序。
具体的操作步骤是,启动模拟程序后,先导入只有基本指令的ROM文件,进入显示ROMS内容窗口,在该窗口输入微地址50,按“查找”按钮后,在对应栏目中输入上面设计的微程序控制信号,输入完成后,按“update”按钮修改。
注意:
因为我们给ADC设计的操作码是20,还需要修改地址为20的MPROM单元的内容,向该单元写入50。
如希望保存设计结果,可按“生成新文件”按钮保存。
此处的数字均为16进制的数。
(5)检查并调试设计方案
设计一段汇编语言程序,包含有ADC指令。
装入到模拟程序中运行调试,通过观察寄存器状态,检查设计正确与否
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 计算机 组成 原理 实验 手册 TEC