计算机组成原理实验报告.docx
- 文档编号:4696092
- 上传时间:2022-12-07
- 格式:DOCX
- 页数:12
- 大小:22.59KB
计算机组成原理实验报告.docx
《计算机组成原理实验报告.docx》由会员分享,可在线阅读,更多相关《计算机组成原理实验报告.docx(12页珍藏版)》请在冰豆网上搜索。
计算机组成原理实验报告
计算机组成原理实验报告
实验1基础汇编语言程序设计
实验目的:
1.学习和了解TEC-XP16教学实验系统监控命令的用法;
2.学习和了解TEC-XP16教学实验系统的指令系统;
3.学习简单的TEC-XP16教学实验系统汇编程序设计;
实验内容:
1.学习联机使用TEC-XP16教学实验系统和仿真终端软件PCEC.
2.学习使用WINDOWS界面的串口通讯软件。
3.使用监控程序的R命令显示/修改寄存器内容、D命令显示存储器内容、E命令修改存储器内容;
4.使用A命令写一小段汇编程序,U命令反汇编刚输入的程序,用G命令连续运行该程序,用T、P命令单步运行并观察程序单步执行情况;
实验步骤:
1.准备一台串口工作良好的PC机;
2.将TEC-XP16放在实验台上,打开实验箱的盖子,确定电源处于断开状态;
3.将黑色的电源线一端接220V交流电源,另一端插在TEC-XP16实验箱的电源插座里;
4.取出通讯线,将通讯线的一端的9芯插头接在TEC-XP16实验箱上的串口“COM1”
上,另一端接到PC机的串口上;
5.将TEC-XP16实验系统左下方的五个黑色的控制机器运行状态的开关置于正确的位
置,在找个实验中开关应置为00110(连续、内存读指令、组合逻辑、联机、16
位),控制开关的功能在开关上、下方有标识;开关拨向上方表示“1”,拨向下方
表示“0”,“X”表示任意,其它实验相同;
6.打开电源,船形开关和5V电源指示灯亮。
7.在PC机上运行数据光盘中配套的PCEC16.EXE文件,根据连接的PC机的串口设置所
用PC机的串口为“1”或“2”,其它的设置一般不用改动,直接回车即可。
8.按一下“RESET”按键,再按一下“START”按键,主机上显示:
TEC-2000CRTMONITOR
Version1.0April2001
ComputerArchitecturLab.,TsinghuaUniversity
ProgrammedbyHeJia
>
程序实现:
1.思考题,本程序中为什么不必判别串行口输出完成否?
设计打入'A'~'Z'和
'0'~'9'的程序,遇到其它字符结束输入过程。
<1>在命令行提示符状态下输入:
A2040↙
屏幕将显示:
2040:
从地址2040H开始输入下列程序:
(2040)MVRDR2,0030;用于判数字符的下界值
MVRDR3,0039;用于判数字符的上界值
MVRDR6,0041;
MVRDR7,005A;
IN81;判键盘上是否按了一个键,
SHRR0;即串行口是否有了输入的字符
SHRR0
JRNC2048;没有输入则循环测试
MVRDR1,00FF
ANDR0,R1;清零R0的高位字节内容
CMPR0,R2;判输入字符≥字符'0'否
JRNC205B;为否,则转到程序结束处
CMPR7,R0;
JRNC2058;为否,则转到程序结束处
CMPR0,R3
JRNC2058
CMPR0,R6
JRNC205B
OUT80;输出刚输入的数字符
JMPA2048;转去程序前边2048处等待输入下一个字符
RET
2.用A命令来键入键盘上接收字符并显示(关键语句)
In81;判断键盘上是否按了一个键
In80;接收该字符
Out80;在屏幕上显示该字符
SHRR0;串行口是否有3输入的字符
G2000;运行程序,用户在光标处输入字符
3.用次数控制在终端屏幕上输入“0”到“9”十个字符。
(关键语句)
MVRDR2;000A;送入输出字符个数
DECR2;输出字符数目减1
JRZ202E;判10个字符是否输出完成,若完则结束。
心得体会:
1.通过A命令来编写代码,学习并使用了IN80和Out81来接收字符,显示字符并用G命令运行程序,更深入了解了执行命令和单步运行命令。
2.用次数控制输入输出可通过固定总数目以及循环终止条件等,学习了循环输入输出的具体内容,对指令系统深入了解。
3.对思考题的证明。
把“In81;SHRR0;JRNC2028”三个语句换成4个“MVRDR0,R0”语句,程序执行和输入速度发生变化,但最终仍会显示十个数字,原因是:
逐步判断输入,在修改程序后,程序执行速度快,但输出速度慢。
实验2存储器部件实验
实验目的:
通过看懂教学计算机中已经使用的几个存储器芯片的逻辑连接关系和用于完成存储器容量扩展的几个存储器芯片的布线安排,在教学计算机上设计、实现并调试出存储器容量扩展的实验内容。
其最终要达到的目的是:
1.深入理解计算机内存储器的功能、组成知识;
2.深入地学懂静态存储器芯片的读写原理和用他们组成教学计算机存储器系统的方法(即
字、位扩展技术),控制其运行的方式;
思考并对比静态和动态存储器芯片在特性和使用场合等方面的同异之处。
实验内容:
1.要完成存储器容量扩展的教学实验,需为扩展存储器选择一个地址,并注意读写和OE等控制信号的正确状态;
2.用监控程序的D、E命令对存储器进行读写,比较RAM(6116)、EEPROM(28系列芯片)EPROM(27系列芯片)在读写上的异同;
3.用监控程序的A命令编写一段程序,对RAM(6116)进行读写,用D命令查看结果是否正确;
4.用监控程序的A命令编写一段程序,对扩展存储器EEPROM(28系列芯片)进行读写,用D命令查看结果是否正确;如不正确,分析原因,改写程序,重新运行;
实验步骤:
1.检查扩展芯片插座的下方的插针要按下列要求短接:
标有“/MWR”“RD”的插针左边两个短接,标有“/MRD”“GND”的插针右边两个短接。
2.RAM(6116)支持即时读写,可直接用A、E命令向扩展的存储器输入程序或改变内存单元的值。
RAM中的内容在断电后会消失,重新启动实验机后会发现内存单元的值发生了改变。
程序实现:
在5000H~500FH单元中依次写入数据0000H、0001H、...000FH。
从2000H单元开始输入主程序:
MVRDR0,0000
MVRDR2,0010;R2记录循环次数
MVRDR3,5000;R3的内容为16位内存地址
STRR[R3],R0;将R0寄存器的内容放到R3给出的内存单元中
CALA2200;调用程序地址为2200的延时子程序
INCR0;R0加1
INCR3;R3加1
DECR2;R2减1
JRNZ2006;R2不为0跳转到2006H
RET
从2200H单元开始输入延时子程序:
PUSHR3
MVRDR3,FFFF
DECR3
JRNZ2203
POPR3
RET
心得体会:
1.RAM内存单元的值,断电后会改变。
在使用RAM时,每次断电重启后都要重新输入程序修改内存单元的值。
2.EPROM芯片,断电重启后,用D命令查看内存单元内容,发现数值未改变。
A命令适用于单字节写入,与E命令有差异。
实验3I/O口扩展实验
实验目的:
学习串行口的正确设置与使用。
实验内容:
1.为扩展I/O口选择一个地址,即将与COM2口相连的8251的/CS与标有I/O/CS的一排插孔中的一个相连;
2.将COM2口与终端或另一台运行有PCEC16的PC机的串口相连;
3.用监控程序的A命令,编写一段小程序,先初始化COM2口,在向COM2口发送一些字符,也可从COM2口接收一些字符,或实现两个串口的通信;
实验步骤:
1.为扩展I/O口选择一个地址:
将与COM2口相连的8251的/CS与标有I/O/CS的插孔中地址为A0~AF的一个相连;
2.将教学机COM1口与一台PC机相连,在PC机上启动PCEC16.EXE;
3.断开COM1与PC的串口线,将其连接到另一台PC机或同一台PC的另一个串口,同样启动PCEC16.EXE;
4.用另一根串口线将COM2口和第一台PC或同一台PC的另一个串口相连;
5.在与COM1相连的PCEC上输入程序,这是主PCEC可以输入输出,和COM2连接的是从PCEC只作输出;
6.用A、E命令编程进行COM2口的操作。
程序实现:
1)程序1:
COM2口初始化
从2000H单元开始输入下面的程序
2000:
MVRDR0,004E;给R0赋值004E
2002:
OUTA1;将R0的值输出到COM2口的8251中的寄存器中
2003:
MVRDR0,0037;给R0赋值0037
2005:
OUTA1;将R0的值输出到COM2口的8251中的寄存器中
2006:
RET
2)程序2:
从COM2口输入数据,然后在与COM1口相连的PC上显示出数据。
从2040H单元开始输入下面的程序
2040:
INA1;判键盘上是否按了一个键,
2041:
SHRR0;即串行口是否有了输入的字符
2042:
SHRR0
2043:
JRNC2040;没有输入则循环测试
2044:
INA0;从COM2口读入字符到R0
2045:
OUT80;将该字符从COM1口输出
2046:
RET
3)程序3:
从COM1口接收数据,发送到与COM2口相连的PC机上回显。
从2060H单元开始输入下面的程序
IN81;判键盘上是否按了一个键,
2061:
SHRR0;即串行口是否有了输入的字符
2062:
SHRR0
2063:
JRNC2060;没有,则循环等待
2064:
IN80;接收字符
2065:
OUTA0;将从键盘输入的字符输出到另一串口。
2066:
RET
心得体会:
1.在进行实验箱与两台PC机连接时,由于设备及配置环境的不熟悉等原因,导致连接不成功。
设置属性中的解决类似问题。
2.每次按下“RESET”键后,需在对COM2进行读写操作前,都会进行初始化操作。
3.本次实验的主要困难时两台PC机与实验箱的联机,需要多加熟悉和操作才能掌握。
实验4中断实验
实验目的:
学习和掌握中断产生、响应、处理等技术。
实验内容:
1.扩展中断隐指令,为中断隐指令分配节拍。
中断隐指令用到12个节拍,为了和一般指令相区别,应将其节拍T3设计为1。
注意:
在扩展中断隐指令时要用到DC1、DC2的译码信号。
2.扩展开中断指令EI、关中断指令DI、中断返回指令IRET。
3.确定中断向量表地址。
中断向量的高12位由开关确定为(001001000000)。
三级中断对应的中断向量为2404H、2408H、240CH。
当有中断请求且被响应后,将执行存放在该中断的中断向量所指向的内存区的指令。
3.填写中断向量表。
在上述的2404H、2408H、240CH地址写入三条JR转移指令,JR指令的OFFSET是偏移量,其值是要转向的地址的值减去该条转移指令的下一条指令的地址的值得到的,该值的范围在-128~+127之间。
但在PCEC16中输入时,用户不需要计算偏移量,直接输入要转向的绝对地址即可。
4.编写中断服务程序。
中断服务程序可以放在中断向量表之后,中断服务程序可实现在程序正常运行时在计算机屏幕上显示与优先级相对应的不同字符。
5.写主程序。
可编写一死循环程序,要求先开中断。
实验步骤:
1.扩展中断隐指令和开、关中断指令、中断返回指令,为他们分配节拍并给出各节拍对应的控制信号。
2.任意选择几条指令观察指令执行及转中断执行的节拍和各节拍对应的控制信号.
置控制开关为11110(单步、手动置指令、组合逻辑、联机、16位)。
3.填写中断向量表。
4.编写中断服务程序。
5.输入子程序,编写主程序。
6.运行主程序。
程序实现:
从2404H单元开始输入下面的程序
(2404)JR2420;跳转到中断服务程序
(2408)JR2430;跳转到中断服务程序
(240C)JR2440;跳转到中断服务程序
用A、E命令从2420H单元开始输入下面的程序(标有*的语句表示要用E命令输入)
2420:
PUSHR0;R0进栈
2421:
PUSHR3;R3进栈
2422:
MVRDR3,31;将字符‘1’的ASCII码送寄存器R3
2424:
JR2450
2430:
PUSHR0;R0进栈
2431:
PUSHR3;R3进栈
2432:
MVRDR3,32;将字符‘2’的ASCII码送寄存器R3
2434:
JR2450
2440:
PUSHR0;R0进栈
2441:
PUSHR3;R3进栈
2442:
MVRDR3,33;将字符‘3’的ASCII码送寄存器R3
2444:
JR2450
*2450:
EI;开中断(指令编码:
6E00)
2451:
MVRDR0,0042;将字符“B”赋值给R0,B即Begin的缩写。
2453:
CALA2200;调用子程序,完成显示
2455:
MVRDR0,0049;将字符“I”赋值给R0,I即Interrupt的缩写。
2457:
CALA2200;调用子程序,完成显示
2459:
MVRRR0,R3;将R3的内容送R1
245A:
CALA2200;调用子程序,完成显示
245C:
IN81;判键盘上是否按了一个键
245D:
SHRR0;即串口是否有了输入字符
245E:
SHRR0
245F:
JRNC245C;若没有,等待
2460:
IN80;输入字符到R0
2461:
MVRDR0,0045;将字符“E”赋值给R0,E即End的缩写。
2463:
CALA2200;调用子程序,完成显示
2465:
MVRDR0,0049;将字符“I”赋值给R0,I即Interrupt的缩写
2467:
CALA2200;调用子程序,完成显示
2469:
MVRRR0,R3;将R3的内容送R1
246A:
CALA2200;调用子程序,完成显示
246C:
POPR3;R3出栈
246D:
POPR0;R0出栈
*246E:
IRET;中断返回
用A命令从2200H单元开始输入下面的子程序
2200:
PUSHR0;R0进栈
2201:
IN81;查询接口状态,判字符输出完成否
2202:
SHRR0
2203:
JRNC2201;未完,循环等待
2204:
POPR0;R0出栈
2205:
OUT80;输出R0的值
2206:
RET
编写主程序:
从地址2000H开始输入下列程序:
*2000:
EI
2001:
MVRDR0,0036;将字符‘6’的ASCII码送寄存器R0
2003:
CALA2200;输出该字符
2005:
MVRDR0,4000;延时子程序
2007:
DECR0
2008:
JRNZ2007
2009:
JR2001;跳到2001循环执行该程序
200A:
RET
心得体会:
1.当屏幕连续显示“6”时,按下不同级别的中断按钮,都可以不同程度地中断显示,其中1,2级中断后,可再次显示,最高级中断后不可再次显示“6”。
2.中断存在一定的优先级,最高级中断会彻底中断程序运行,同时,低级中断不会影响高级中断。
3.中断优先级有广泛应用,要通过操作和实践充分理解中断。
实验5脱机运算器实验
实验目的:
深入了解AM2901运算器的功能与具体用法,4片AM2901的级连方式,深化运算器部件的组成、设计、控制与使用等诸项知识。
实验说明:
脱机运算器实验:
是指让运算器从教学计算机的整机中脱离出来,此时,它的全部控制与操作均需通过两个12位的微型开关来完成,这就谈不上执行指令,只能通过开关、按键控制教学机的运算器完成指定的运算功能,并通过指示灯观察运算结果。
一.12位微型开关的具体控制功能分配如下:
A口、B口地址:
送给AM2901器件用于选择源与目的操作数的寄存器编号;
I8-I0:
选择操作数来源、运算操作功能、选择操作数处理结果和运算器输出内容的3组3位
的控制码;
SCi、SSH和SST:
用于确定运算器最低位的进位输入、移位信号的入/出和怎样处理AM2901产生的状态标志位的结果。
实验步骤:
1.将教学机左下方的5个拨动开关置为1XX00(单步、16位、脱机);先按一下“RESET”
按键,再按一下“START”按键,进行初始化。
2.接下来,按下表所列的操作在机器上进行运算器脱机实验,将结果填入表中:
其中D1取
为0101H,D2取为1010H;通过3个12位的红色微型开关向运算器提供控制信号,通过16位数据开关向运算器提供数据,通过指示灯观察运算结果以及状态标志。
实验结果:
运算
I8-I0
SST
SSH
SCi
B
A
压START前
压START后
ALU
CZVS
ALU
CZVS
输出
输出
*D1+0->R0
011000111
001
00
00
0000
不用
0101
随机
0101
0000
*D2+0->R1
011000111
001
00
00
0001
不用
1010
0000
1010
0000
R0+R1->R0
011000001
001
00
00
0000
0001
1111
0000
2121
0000
RO-R1->R0
011001001
001
00
01
0000
0001
0101
0000
F0F1
1000
R1-R0->R1
011001001
001
00
01
0001
0000
0F0F
1000
0E0E
1000
R0∨R1->R0
011011001
001
00
00
0001
0000
0F0F
1000
0F0F
1010
R0∧R1->R0
011100001
001
00
00
0000
0001
0101
1010
0101
1010
R0
R1->R0
011110001
001
00
00
0000
0001
0E0E
1010
0101
1000
┘
(R0
R1)->R0
011111001
001
00
00
0000
0001
FEFE
1000
0E0E
1001
2*R0->R0
111000011
001
00
00
0000
不用
FEFE
1001
FDFC
0001
R0/2->R0
101000011
001
00
00
0000
不用
FDFC
0001
7EFE
0001
心得体会:
1.通过这次实验,了解了AM2901运算器的功能与具体用法,以及4片AM2901的级连方式,深化运算器部件的组成、设计、控制与使用等诸项知识。
2.通过本次实验,明白了当运算器从教学计算机的整机中脱离出来时,它的全部控制与操作是由两个12位的微型开关来完成的,而不是用执行指令,而是通过开关、按键控制教学机的运算器完成指定的运算功能,并通过指示灯来观察运算结果。
3.在做本次实验的过程中,发现实验结果与课本上实验结果有出入,上面表格中为修改后的正确实验结果。
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 计算机 组成 原理 实验 报告
![提示](https://static.bdocx.com/images/bang_tan.gif)