还剩11页未读,继续阅读
本资源只提供10页预览,全部文档请下载后查看!喜欢就下载吧,查找使用更方便
文本内容:
计算机组成原理实验报告实验1基础汇编语言程序设计实验目的:.学习和了解TEC-XP16教学实验系统监控命令的用法;.学习和了解TEC-XP16教学实验系统的指令系统;.学习简单的TEC-XP16教学实验系统汇编程序设计;实验内容.学习联机使用TEC-XP16教学实验系统和仿真终端软件PCEC..学习使用WINDOWS界面的串口通讯软件.使用监控程序的R命令显示/修改寄存器内容、D命令显示存储器内容、E命令修改存储器内容;.使用A命令写一小段汇编程序,U命令反汇编刚输入的程序,用G命令连续运行该程序,用T、P命令单步运行并观察程序单步执行情况;实验步骤.准备一台串口工作良好的PC机;.将TEC-XP16放在实验台上,打开实验箱的盖子,确定电源处于断开状态;.将黑色的电源线一端接220V交流电源,另一端插在TEC-XP16实验箱的电源插座里;.取出通讯线,将通讯线的一端的9芯插头接在TEC-XP16实验箱上的串口“COM1”上,另一端接到PC机的串口上;.将TEC-XP16实验系统左下方的五个黑色的控制机器运行状态的开关置于正确的位置,在找个实验中开关应置为00110(连续、内存读指令、组合逻辑、联机、16位),控制开关的功能在开关上、下方有标识;开关拨向上方表示“1”,拨向下方表示“0”,“X”表示任意,其它实验相同;.打开电源,船形开关和5V电源指示灯亮.在PC机上运行数据光盘中配套的PCEC
16.EXE文件,根据连接的PC机的串口设置所用PC机的串口为“1”或“2”,其它的设置一般不用改动直接回车即可.按一下“RESE丁按键,再按一下“START”按键,主机上显示TEC-2000CRTMONITORVersion
1.0April2001ComputerArchitecturLab.TsinghuaUniversityProgrammedbyHeJia*2000:日2001:MVRDR00036;将字符‘6的ASCII码送寄存器R02003:CALA2200;输出该字符2005:MVRDR04000;延时子程序2007:DECR02008JRNZ20072009JR2001;跳到2001循环执行该程序200A:RET心得体会
1.当屏幕连续显示“6”时,按下不同级别的中断按钮,都可以不同程度地中断显示,其中12级中断后,可再次显示,最高级中断后不可再次显示“6”2中断存在一定的优先级,最高级中断会彻底中断程序运行,同时,低级中断不会影响高级中断
3.中断优先级有广泛应用,要通过操作和实践充分理解中断实验5脱机运算器实验实验目的深入了解AM2901运算器的功能与具体用法,4片AM2901的级连方式,深化运算器部件的组成、设计、控制与使用等诸项知识实验说明脱机运算器实验是指让运算器从教学计算机的整机中脱离出来,此时,它的全部控制与操作均需通过两个12位的微型开关来完成,这就谈不上执行指令,只能通过开关、按键控制教学机的运算器完成指定的运算功能,并通过指示灯观察运算结果一.12位微型开关的具体控制功能分配如下A口、B口地址送给AM2901器件用于选择源与目的操作数的寄存器编号;
18.10选择操作数来源、运算操作功能、选择操作数处理结果和运算器输出内容的3组3位的控制码;SCi.SSH和SST用于确定运算器最低位的进位输入、移位信号的入/出和怎样处理AM2901产生的状态标志位的结果实验步骤.将教学机左下方的5个拨动开关置为1XXOO(单步、16位、脱机);先按一下“RESET”按键,再按一下“START”按键,进行初始化.接下来,按下表所列的操作在机器上进行运算器脱机实验,将结果填入表中其中D1取为0101HD2取为1010H;通过3个12位的红色微型开关向运算器提供控制信号,通过16位数据开关向运算器提供数据,通过指示灯观察运算结果以及状态标志实验结果:心得体会
1.通过这次实验,了解了AM2901运算器的功能与具体用法,以及4片AM2901的级连方式,深化运算器部件的组成、设计、控制与使用等诸项知识.通过本次实验,明白了当运算器从教学计算机的整机中脱离出来时,它的全部控制与操作是由两个12位的微型开关来完成的,而不是用执行指令,而是通过开关、按键控制教学机的运算器完成指定的运算功能,并通过指示灯来观察运算结果.在做本次实验的过程中,发现实验结果与课本上实验结果有出入,上面表格中为修改后的正确实验结果程序实现.思考题,本程序中为什么不必判别串行口输出完成否?设计打入W〜Z和O〜9的程序,遇到其它字符结束输入过程1在命令行提示符状态下输入A2040/屏幕将显示2040从地址2040H开始输入下列程序
(2040)MVRDR20030;用于判数字符的下界值MVRDR30039;用于判数字符的上界值MVRDR6z0041;MVRDR7005A;IN81;判键盘上是否按了一个键,SHRR0;即串行□是否有了输入的字符SHRR0JRNC2048;没有输入则循环测试MVRDR
1.00FFANDROR1;清零R0的高位字节内容CMPR0R2;判输入字符2字符0*否JRNC205B;为否,则转到程序结束处CMPR7R0;JRNC2058;为否,则转到程序结束处CMPR0R3JRNC2058CMPR0R6JRNC205BOUT80;输出刚输入的数字符JMPA2048;转去程序前边2048处等待输入下一个字符RET.用A命令来键入键盘上接收字符并显示(关键语句)In81;判断键盘上是否按了一个键In80;接收该字符Out80;在屏幕上显示该字符SHRR0;串行口是否有3输入的字符G2000;运行程序,用户在光标处输入字符3用次数控制在终端屏幕上输入“0”到“9十个字符(关键语句)MVRDR2;000A;送入输出字符个数DECR2;输出字符数目减1JRZ202E;判10个字符是否输出完成,若完则结束心得体会.通过A命令来编写代码,学习并使用了IN80和Out81来接收字符,显示字符并用G命令运行程序,更深入了解了执行命令和单步运行命令.用次数控制输入输出可通过固定总数目以及循环终止条件等,学习了循环输入输出的具体内容,对指令系统深入了解.对思考题的证明把“In81;SHRRO;JRNC2028”三个语句换成4个MVRDRORO”语句,程序执行和输入速度发生变化,但最终仍会显示十个数字,原因是逐步判断输入,在修改程序后,程序执行速度快,但输出速度慢实验2存储器部件实验实验目的通过看懂教学计算机中已经使用的儿个存储器芯片的逻辑连接关系和用于完成存储器容量扩展的几个存储器芯片的布线安排,在教学计算机上设计、实现并调试出存储器容量扩展的实验内容其最终要达到的目的是.深入理解计算机内存储器的功能、组成知识;.深入地学懂静态存储器芯片的读写原理和用他们组成教学计算机存储器系统的方法(即字、位扩展技术),控制其运行的方式;思考并对比静态和动态存储器芯片在特性和使用场合等方面的同异之处实验内容.要完成存储器容量扩展的教学实验,需为扩展存储器选择一个地址,并注意读写和0E等控制信号的正确状态;.用监控程序的D、E命令对存储器进行读写,比较RAM
(6116)、EEPROM(28系列芯片)EPROM(27系列芯片)在读写上的异同;.用监控程序的A命令编写一段程序,对RAM
(6116)进行读写,用D命令查看结果是否正确;.用监控程序的A命令编写一段程序,对扩展存储器EEPROM(28系列芯片)进行读写,用D命令查看结果是否正确;如不正确,分析原因,改写程序,重新运行;实验步骤.检查扩展芯片插座的下方的插针要按下列要求短接标有“/MWR”“RD”的插针左边两个短接,标有“/MRD”“GND”的插针右边两个短接.RAM
(6116)支持即时读写,可直接用A、E命令向扩展的存储器输入程序或改变内存单元的值RAM中的内容在断电后会消失,重新启动实验机后会发现内存单元的值发生了改变程序实现:在5000H〜500FH单元中依次写入数据0000H0001H...OOOFHo从2000H单元开始输入主程序MVRDR00000MVRDR20010;R2记录循环次数MVRDR35000;R3的内容为16位内存地址STRR[R3]R0;将R0寄存器的内容放到R3给出的内存单元中CALA2200;调用程序地址为2200的延时子程序INCRO;RO力口1INCR3;R3力口1DECR2;R2减1JRNZ2006;R2不为0跳转到2006HRET从2200H单元开始输入延时子程序PUSHR3MVRDR3FFFFDECR3JRNZ2203POPR3RET心得体会LRAM内存单元的值,断电后会改变在使用RAM时,每次断电重启后都要重新输入程序修改内存单元的值
2.EPROM芯片,断电重启后,用D命令查看内存单元内容,发现数值未改变A命令适用于单字节写入,与E命令有差异实验3I/O口扩展实验实验目的学习串行口的正确设置与使用实验内容.为扩展I/O口选择一个地址,即将与COM2口相连的8251的/CS与标有I/O/CS的一排插孔中的一个相连;.将COM2口与终端或另一台运行有PCEC16的PC机的串口相连;.用监控程序的A命令,编写一段小程序,先初始化COM2口,在向COM2口发送一些字符,也可从COM2口接收一些字符,或实现两个串口的通信;实验步骤.为扩展I/O口选择一个地址将与COM2口相连的8251的/CS与标有I/O/CS的插孔中地址为AO~AF的一个相连;.将教学机COM1口与一台PC机相连,在PC机上启动PCEC
16.EXE;.断开COM1与PC的串口线,将其连接到另一台PC机或同一台PC的另一个串口,同样启动PCEC
16.EXE;.用另一根串口线将COM2口和第一台PC或同一台PC的另一个串口相连;.在与COM1相连的PCEC上输入程序,这是主PCEC可以输入输出,和COM2连接的是从PCEC只作输出;.用A、E命令编程进行COM2口的操作程序实现:1)程序1COM2口初始化从2000H单元开始输入下面的程序2000MVRDRO004E;给R0赋值004E20020UTA1;将R0的值输出到COM2口的8251中的寄存器中2003MVRDR00037;给R0赋值003720050UTA1;将R0的值输出到COM2口的8251中的寄存器中2006RET2)程序2从COM2口输入数据,然后在与COM1口相连的PC上显示出数据从2040H单元开始输入下面的程序2040INAl;判键盘上是否按了一个键,2041SHRR0;即串行口是否有了输入的字符2042SHRR02043JRNC2040;没有输入则循环测试2044INAO;从COM2口读入字符到R02045OUT80;将该字符从COM1口输出2046RET3)程序3从COM1口接收数据,发送到与COM2口相连的PC机上回显从2060H单元开始输入下面的程序IN81;判键盘上是否按了一个键2061SHRRO;即串行口是否有了输入的字符2062SHRR02063JRNC2060;没有,则循环等待2064IN80;接收字符2065OUTAO;将从键盘输入的字符输出到另一串口2066RET心得体会L在进行实验箱与两台PC机连接时,由于设备及配置环境的不熟悉等原因,导致连接不成功设置属性中的解决类似问题.每次按下“RESET”键后,需在对COM2进行读写操作前,都会进行初始化操作.本次实验的主要困难时两台PC机与实验箱的联机,需要多加熟悉和操作才能掌握实验4中断实验实验目的学习和掌握中断产生、响应、处理等技术实验内容.扩展中断隐指令,为中断隐指令分配节拍中断隐指令用到12个节拍,为了和一般指令相区别,应将其节拍T3设计为lo注意在扩展中断隐指令时要用到DC
1、DC2的译码信号.扩展开中断指令EI、关中断指令DI、中断返回指令IRETo.确定中断向量表地址中断向量的高12位由开关确定为001001000000三级中断对应的中断向量为2404H、2408H、240CH当有中断请求且被响应后,将执行存放在该中断的中断向量所指向的内存区的指令.填写中断向量表在上述的2404H、2408H、240CH地址写入三条JR转移指令,JR指令的OFFSET是偏移量,其值是要转向的地址的值减去该条转移指令的下一条指令的地址的值得到的,该值的范围在-128〜+127之间但在PCEC16中输入时.,用户不需要计算偏移量,直接输入要转向的绝对地址即可.编写中断服务程序中断服务程序可以放在中断向量表之后,中断服务程序可实现在程序正常运行时在计算机屏幕上显示与优先级相对应的不同字符.写主程序可编写一死循环程序,要求先开中断实验步骤.扩展中断隐指令和开、关中断指令、中断返回指令,为他们分配节拍并给出各节拍对应的控制信号.任意选择几条指令观察指令执行及转中断执行的节拍和各节拍对应的控制信号.置控制开关为11110单步、手动置指令、组合逻辑、联机、16位.填写中断向量表•编写中断服务程序.输入子程序,编写主程序.运行主程序程序实现:从2404H单元开始输入下面的程序2404JR2420;跳转到中断服务程序2408JR2430;跳转到中断服务程序240CJR2440;跳转到中断服务程序用A、E命令从2420H单元开始输入下面的程序标有*的语句表示要用E命令输入2420PUSHRO;R0进栈2421PUSHR3;R3进栈2422MVRDR331;将字符‘1的ASCII码送寄存器R32424JR24502430PUSHRO;RO进栈2431PUSHR3;R3进栈2432MVRDR332;将字符‘2的ASCII码送寄存器R32434JR24502440PUSHRO;RO进栈2441PUSHR3;R3进栈2442MVRDR333;将字符‘3的ASCII码送寄存器R32444JR2450*2450:EI;开中断(指令编码:6E00)2451:MVRDRO0042;将字符“B”赋值给ROB即Begin的缩写2453:CALA2200;调用子程序,完成显示2455:MVRDR00049;将字符“I”赋值给R0I即Interrupt的缩写2457:CALA2200;调用子程序,完成显示2459:MVRRR0R3;将R3的内容送R1245A:CALA2200;调用子程序,完成显示245CHN81;判键盘上是否按了一个键245D:SHRR0;即串口是否有了输入字符245E:SHRR0245FJRNC245C;若没有,等待2460JN80;输入字符到R02461:MVRDR00045;将字符赋值给R0E即End的缩写2463:CALA2200;调用子程序,完成显示2465:MVRDR00049;将字符“I”赋值给R0I即Interrupt的缩写2467:CALA2200;调用子程序,完成显示2469:MVRRR0R3;将R3的内容送R1246A:CALA2200;调用子程序,完成显示246C:POPR3;R3出栈246D:POPR0;R0出栈*246E:IRET;中断返回用A命令从2200H单元开始输入下面的子程序2200:PUSHR0;R0进栈2201:IN81;查询接口状态,判字符输出完成否2202:SHRR02203JRNC2201;未完,循环等待2204:POPR0;R0出栈2205:OUT80;输出R0的值2206:RET编写主程序从地址2000H开始输入下列程序:运算18-10SSTSSHSCiBA压START压STARTALU输出czvsALU输出czvs*D1+O-RO01100011100100000000不用0101随机01010000*D2+O-R101100011100100000001不用1010000010100000R0+R1-R0011000001001000000000001mi000021210000RO-R1-RO01100100100100010000000101010000F0F11000R1-RO-R10110010010010001000100000F0F1000OEOE1000ROVR1-RO011011001001000000010000OFOF1000OFOF1010ROAR1-RO0111000010010000000000010101101001011010RR1-RO011110001001000000000001OEOE101001011000-RR1-R011111001001000000000001FEFE1000OEOE10012*R0-R011100001100100000000不用FEFE1001FDFC0001R0/2-R010100001100100000000不用FDFC00017EFE0001。