您好,欢迎访问三七文档
当前位置:首页 > IT计算机/网络 > 其它相关文档 > 计算机组成原理实验指导书-201511修订
计算机组成原理实验指导书马莉修订2015年11月目录实验一脱机运算器实验-------------------------------------------------------------1实验二基础汇编语言程序设计-----------------------------------------------------3实验三存储器部件实验与多级中断实验-----------------------------------------10实验四微程序控制器实验-----------------------------------------------------------17附录一TEC-2000教学机的操作与使用方法练习说明-----------------------21附录二TEC-2000教学机的指令系统--------------------------------------------24[键入文字]1实验一脱机运算器实验实验目的深入了解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(H表示十六进制),D2取为1010H。通过两个12位的红色微型开关向运算器提供控制信号,通过16位数据开关向运算器提供数据,通过指示灯观察运算结果及状态标志。实验要求1.实验之前认真预习,看清实验要求、执行步骤,查找TEC—2000简明操作卡,填写下面的表格,将实验过程中每一步运算所需的24位控制信号填入表中,也可以在表格中增加或修改一些运算功能。2.实验过程中认真操作,听从教师安排,按时开始和结束实验过程;仔细分析遇到的问题并设法解决,做好实验过程与实验结果的记录工作;防止损坏设备。3.实验之后认真完成实验报告,包括实验预习与数据准备情况,实验中遇到的问题和解决的办法及效果,实验操作过程与实验结果的分析整理等总结性的内容,实验中尚未完全理解或解决的问题,实验的收获及心得体会,对实验安排的建议与意见等。[键入文字]2压START键后CZVSALU输出压START键前CZVS(4位二进制)ALU输出(4位十六进制)控制信号(用二进制数据表示)B口0000A口不用SSH00SCi00SST001I8~I0011000111算术逻辑运算*D1+0→R0*D2+0→R1R0+R1→R0R0-R1→R0R1-R0→R1R0R1→R1R0R1→R0R0R1→R0┐(R0R1)→R02*R0→R0R0/2→R0注:用*作标记的运算,表示D1、D2的数据是由拨动开关SW给出的。[键入文字]3表格中的一系列运算是连续执行的,即每一步运算是在前一步运算结果的基础上运行的。实验二基础汇编语言程序设计实验目的1.学习和了解TEC-2000十六位机监控命令的用法;2.学习和了解TEC-2000十六位机的指令系统;3.学习简单的TEC-2000十六位机汇编程序设计。实验内容1.使用监控程序的R命令显示/修改寄存器内容、D命令显示存储器内容、E命令修改存储器内容;2.使用A命令写一小段汇编程序,U命令反汇编刚输入的程序,用G命令连续运行该程序,用T、P命令单步运行并观察程序单步执行情况。实验要求1.在使用该教学机之前,应先熟悉教学机的各个组成部分及其使用方法。2.实验前仔细阅读附录一和附录二。实验步骤1.关闭电源,将大板上的COMl口与PC机的串口相连;2.接通电源,在PC机上运行PCEC.EXE文件,设置所用PC机的串口为“l”或“2”,其它的设置一般不用改动,直接回车即可;3.置控制开关为00101(连续、内存读指令、组合逻辑、16位、联机),开关拨向上方表示“1”,拨向下方表示“0”,“X”表示任意。其它实验相同;4.按一下“RESET”按键,再按一下“START”’按键,主机上显示:TEC-2000CRTMONITORVersion2.02001.10ComputerArchitectureLab.,TsinghuaUniversityCopyrightJasonHe5.用R命令查看寄存器内容或修改寄存器的内容1)在命令行提示符状态下输入:R↙;显示寄存器的内容注:寄存器的内容在运行程序或执行命令后会发生变化。2)在命令行提示符状态下输入:RR0↙;修改寄存器R0的内容,被修改的寄存器与所赋值之间可以无空格,也可有—个或数个空格主机显示:寄存器原值:xxxx在后面输入新的值0036再用R命令显示寄存器内容,则R0的内容变为0036。6.用D命令显示存储器内容在命令行提示符状态下输入:D2000↙[键入文字]4会显示从2000H地址开始的连续120个字的内容;连续使用不带参数的D命令,起始地址会自动加120(即78H)。7.用E命令修改存储器内容在命令行提示符状态下输入:E2000↙屏幕显示:2000xxxx(地址单元的原有内容):(光标在此闪烁等待输入)输入0000(提示快捷使用方法:用E命令连续修改内存单元的值时,每修改完—个,按一下空格键,系统会自动给出下一个内存单元的值,等待修改;按回车键则退出E命令。)依次改变地址单元2001~2005的内容为:11112222333344445555用D命令显示这几个单元的内容D2000↙可以看到这六个地址单元的内容变为000011112222333344445555。8.用A命令键入一段汇编源程序,主要是向累加器送入数据和进行运算,执行程序并观察运行结果。1)在命令行提示符状态下输入:A2000↙;表示该程序从2000H(内存RAM区的起始地址)地址开始屏幕将显示:2000:输入如下形式的程序:2000:MVRDR0,AAAA;MVRD与R0之间只有一个空格,其他指令相同2002:MVRDR1,55552004:ADDR0,R12005:ANDR0,R12006:RET;程序的最后一个语句,必须为RET指令2007:↙;直接敲回车键,结束A命令输入程序的操作过程若输入有误,系统会给出提示并显示出错地址,用户只需在该地址重新输入正确的指令即可。2)用U命令反汇编刚输入的程序在命令行提示符状态下输入:U2000↙在相应的地址会得到输入的指令及其操作码。注:连续使用不带参数的U命令时,将接着从上一次反汇编的最后一条语句之后继续反汇编。3)用G命令运行前面刚键入的源程序G2000↙程序运行结束后,观察程序的运行结果,记录寄存器R0和R1的值。R0=?R1=?4)用P或T命令,单步执行这段程序,观察指令执行结果在命令行提示符状态下输入:T2000↙寄存器R0=?T↙[键入文字]5寄存器R1=?T↙寄存器R0=?T↙寄存器R0=?用P命令执行过程同上。注:T总是执行单条指令,但执行P命令时,则把每一个CALL语句连同被调用的子程序一次执行完成。T、P命令每次执行后均显示所有通用寄存器及状态寄存器的内容,并反汇编出下一条将要执行的指令。7.举例编写汇编程序,用“A”命令输入,运行并观察结果1)例1:设计一个小程序,从键盘上接收一个字符并在屏幕上输出显示该字符。1在命令行提示符状态下输入:A2000↙屏幕将显示:2000:输入如下形式的程序:2000:IN81;判断键盘上是否按了一个键2001:SHRR0;即串行口是否有了输入的字符2002:SHRR02003:JRNC2000;未输入完则循环测试2004:IN80;接收该字符2005:OUT80;在屏幕上输出该字符2006:RET;每个用户程序都必须用RET指令结束2007:↙;(按回车键即结束输入过程)注:在十六位机中,基本I/0接口的地址是确定的,数据口的地址为80H,状态口的地址为81H。2用“G”命令运行程序在命令行提示符状态下输入:G2000↙执行上面输入的程序。光标闪烁等待输入,用户从键盘键入字符后,屏幕会显示该字符。该例建立了一个从主存2000H地址开始的小程序。在这种方式下,所有的数字都约定使用16进制数,故数字后不用跟字符H。每个用户程序的最后一个语句一定为RET汇编语句。因为监控程序是选用类似子程序调用方式使实验者的程序投入运行的,用户程序只有用RET语句结束,才能保证程序运行结束时能正确返回到监控程序的断点,保证监控程序能继续控制教学机的运行过程。2)例2:设计一个小程序,用次数控制在终端屏幕上输出‘0’到‘9’十个数字符。1在命令行提示符状态下输入:A2020↙屏幕将显示:2020:从地址2020H开始输入下列程序:2020:MVRDR2,000A;送入输出字符个数2022:MVRDR0,0030;“0”字符的ASCII码送寄存器R0[键入文字]62024:OUT80;输出保存在R0低位字节的字符2025:DECR2;输出字符个数减12026:JRZ202E;判10个字符输出完否,已完,则转到程序结束处2027:PUSHR0;未完,保存R0的值到堆栈中2028:IN81;查询接口状态,判字符串行输出完成否,2029:SHRR0;202A:JRNC2028;未完成,则循环等待202B:POPR0;已完成,准备输出下一字符并从堆栈恢复R0的值202C:INCR0;得到下一个要输出的字符202D:JR2024;转去输出字符202E:RET202F:↙该程序的执行码放在2020H起始的连续内存区中。若送入源码的过程中有错,系统会进行提示,等待重新输入正确的汇编语句。输入过程中,在应输入语句的位置直接打回车则结束输入过程。2用“G”命令运行程序在命令行提示符状态下输入:G2020↙记录执行结果:【思考题】当把IN81,SHRR0,JNC2028三条语句换成3个MVRRR0,R0语句,该程序执行过程会出现什么现象?试分析并实际执行一次。类似的,若要求在终端屏幕上输出‘A’到‘Z’共26个英文字母,应如何修改例2中给出的程序?请验证之。将程序写入实验报告。[键入文字]7例3:从键盘上连续打入多个属于‘0’到‘9’的数字符并在屏幕上显示,遇非数字符结束输入过程。1在命令行提示符状态下输入:A2040↙屏幕将显示:2040:从地址2040H开始输入下列程序:(2040)MVRDR2,0030;用于判数字符的下界值MVRDR3,0039;用于判数字符的上界值(2044)IN81;判键盘上是否按了一个键SHRR0;即串行口是否有了输入的字符SHRR0JRNC2044;没有输入则循环测试IN80;输入字符到R0MVRDR1,00FFANDR0,R1;R0的高位字节内容清零CMPR0,R2;判输入字符≥字符‘0’否JRNC2053;若为否,则转到程序结束处CMPR3,R0;判输入字符≤字符‘9’否JRNC2053;若为否,则转到程序结束处OUT80;输出刚输入的数字符JMPA2044;转去程序前边2044处等待输入下一个字符(2053)RET2在命令行提示符状态下输入:G2040↙光标闪烁等待键盘输入,若输入0~9十个数字符,则在屏幕上回显;若输入非数字符,则屏幕不再显示该字符,出现命令提示符,等待新命令。【思考题
本文标题:计算机组成原理实验指导书-201511修订
链接地址:https://www.777doc.com/doc-2044208 .html