您好,欢迎访问三七文档
当前位置:首页 > IT计算机/网络 > 其它相关文档 > 计算机组成原理实验一-二
计算机学院学院计算机科学与技术专业班___组、学号姓名协作者______________教师评定_______________实验题目实验一基础汇编语言程序设计一、实验目的:1.学习和了解TEC-XP+教学实验系统监控命令的用法;2.学习和了解TEC-XP+教学实验系统的指令系统;3.学习简单的TEC-XP+教学实验系统汇编语言程序。4.二、实验设备与器材:5.工作良好的PC机;6.TEC-XP+教学实验系统和仿真终端软件PCEC。7.三、实验说明和原理:实验原理在于汇编语言能够直接控制底层硬件的状态,通过简单的汇编指令查看、显示、修改寄存器、存储器等硬件内容。实验箱正如一集成的开发板,而我们正是通过基础的汇编语言对开发板进行使用和学习,过程中我们不仅需要运用汇编语言的知识,还需要结合数字逻辑中所学的关于存储器、触发器等基本器件的原理,通过串口通讯,实现程序的烧录,实验箱与PC端的通讯。四、实验内容:1)学习联机使用TEC-XP+教学实验系统和仿真终端软件PCEC;2)学习使用WINDOWS界面的串口通讯软件;3)使用监控程序的R命令显示/修改寄存器内容、D命令显示存储内容、E命令修改存储内容;4)使用A命令写一小段汇编程序,U命令反汇编输入的程序,用G命令连续运行该程序,用T、P命令单步运行并观察程序单步执行情况。五、实验步骤:1)准备一台串口工作良好的PC机器;2)将TEC-XP+放在实验台上,打开实验箱的盖子,确定电源处于断开状态;3)将黑色的电源线一段接220V交流电源,另一端插在TEC-XP+实验箱的电源插座里;4)取出通讯线,将通讯线的9芯插头接在TEC-XP+实验箱上的串口COM1或COM2上,另一端接到PC机的串口上;5)将TEC-XP+实验系统左下方的六个黑色的控制机器运行状态的开关置于正确的位置,再找个实验中开关应置为001100(连续、内存读指令、组合逻辑、联机、16位、MACH),控制开关的功能在开关上、下方有标识;开关拨向上方表示1,拨向下方表示0,X表示任意,其他实验相同;6)打开电源,船型开关盒5V电源指示灯亮;7)在PC机上运行PCEC16.EXE文件,根据连接的PC机的串口设置所用PC机的串口为1或2,其他的设置一般不用改动,直接回车即可;8)按一下RESET按键,再按一下START按键,在主机上显示:TEC—2000CRTMONITORVersion1.0April2001ComputerArchitecturLab,TsinghuaUniversityProgrammedbyHeJia六、实验示例:1.用R命令查看寄存器内容或修改寄存器的内容1)在命令行提示符状态下输入:R↙;显示寄存器的内容注:寄存器的内容在运行程序或执行命令后会发生变化。2)在命令行提示符状态下输入:RR0↙:修改寄存器R0的内容,被修改的寄存器与所赋值之间可以无空格,也可由一个或数个空格主机显示:寄存器原值:_在该提示符下输入新的值0036再用R命令显示寄存器的内容,则R0的内容变为0036。测试结果如下图:3.用命令修改存储器内容在命令提示符状态下输入:E2000↙屏幕显示:2000地址单元的原有内容:光标闪烁等待输入输入0000依次改变地址单元2001~2005的内容为:11112222333344445555注意:用E命令连续修改内存单元的值时,每修改完一个,按一下空格键,系统会自动给出下一个内存单元的值,等待修改;按回车键则退出E命令。5.用A命令花不如一段汇编源程序,主要是想累加器送入数据和进行运算,执行程序并观察运行结果。1)在命令行提示符状态下输入:A2000↙:表示该程序从2000H(内存RAM区的起始地址)地址开始屏幕将显示:2000:输入如下形式的程序:2000:MVRDR0,AAAA;MVRD与R0之间有且只有一个空格,其他指令相同2002:MVRDR1,55552004:ADDRO,R12005:ANDR0,R12006:RET;程序的最后一个语句,必须为RET指令2007:(直接敲回车键,结束A命令输入程序的操作过程)若输入有误,系统会给出提示并显示出错地址,用户只需在该地址重新输入正确的指令即可。2)用U命令反汇编刚输入的程序在命令行提示符状态下输入:U2000↙在相应的地址会得到输入的指令及其操作码注:连续使用不带参数的U命令时,将从上一次反汇编的最后一条语句之后接着继续反汇编。3)用G命令运行前面键入的源程序G2000↙程序运行结束后,可以看到程序的运行结果,屏幕显示各寄存器的值,其中R0和R1的值均为5555H,说明程序运行正确。4)用P或T命令,但不执行这段程序,观察指令执行结果在命令行提示符状态下输入:T2000↙寄存器R0被赋值为AAAAHT↙寄存器R1被赋值为5555HT↙做加法运算,和放在R0,R0的值变为FFFFHT↙做与运算,结果放在R0,R0的值变为5555H用P命令执行过程同上注:T总是执行单条指令,但执行P命令时,则把每一个CALL语句连同被调用的子程序依次执行完成。T,P命令每次执行后均显示所由通用寄存器及状态寄存器的内容,并反汇编出下一条将要执行的指令。运行结果如下:例1:设计一个小程序,从键盘上接收一个字符并在屏幕上数出显示该字符。1在命令行提示符状态下输入:A2000↓屏幕将显示:2000:输入如下形式的程序:2000:IN81:判断键盘上是否按了建2001:SHRR0:即串行口是否有输入的字符2002:SHRR02003:JRNC2000:未输入完则循环测试2004:IN80:接收该字符2005:OUT80↓:在屏幕上输出显示字符‘6’2006:RET↓:每个用户程序都必须用RET指令结束2007:↓:(按回车即结束输入过程)注:在十六位机中,基本I/O接口的地址是确定的,数据口的地址为80,状态口的地址为81。2用“G”命令运行程序在命令提示符状态下输入:G2000↓执行上面输入的程序光标闪烁等待输入,用户从键盘入字符后,屏幕会显示该字符。该例建立了一个从主存2000H地址开始的小程序。这种方式下,所有的数字都约定使用16进制数,故数字后不用跟字符H。每个用户程序的最后一个语句一定为RET汇编语句。因为监控程序是用类似子程序调用方式使实验者的程序投入运行的,用户程序只有用RET语句结束,才能保证程序运行结束时能正确返回到监控程序的断点,保证监控程序能继续控制教学机的运行过程。测试如下图:七、实验心得:1、这是本学期第一次计算机组成原理的实验,我初步掌握了TEC-XP实验系统和PC机上仿真软件、模拟器的基本操作方法。2、认识并熟悉了一些基本汇编语言的操作,了解到程序内部运行机制,感觉很神奇。3、第一次实验手忙脚乱,打错指令却忘了时时检查,最后只能重新再输入一遍,做了很多无用功(导致后面两个实验是后来有时间才补上的),但同时也让我对汇编指令更加熟悉了一些。4.本来想建议说PC端软件可以改进一些,加入后退、修改功能之类的,后来仔细一想,错误的程序输入以后内存的值也被改变了,这样的功能并不实际。5.这个实验内容较多,需要学会跟同学分工合作才能更好地完成。计算机学院学院计算机科学与技术专业班___组、学号姓名协作者______________教师评定_______________实验题目实验二脱机运算器实验一、实验目的:1.深入了解AM2901运算器的功能与具体用法;2.深化运算器部件的组成、设计、控制与使用等知识。3.二、实验设备与器材:TEC-XP+教学实验系统和仿真终端软件PCEC。三、实验说明和原理:本次实验脱离PC端,主要通过实验箱进行。因此这个实验更像数据逻辑的电路实验。脱机运算器实验,是指让运算器从教学计算机整机中脱离出来,此时,它的全部控制与操作均需通过两个12位的微型开关来完成,这就谈不上执行指令,只能通过开关、按键控制教学机的运算器完成指定的运算功能,并通过指示灯观察运算结果。下面先把前边几讲过的,与该实验直接有关的结论性内容汇总如下。一、12位微型开关的具体控制功能分配如下:A口,B口地址:送给AM2901器件用于选择源与目的操作数的寄存器编号:I8-I0:选择操作数来源,运算操作功能,选择操作数处理结果和运算器输出内容的3组3位的控制码:SCI,SSH和SST:用于确定运算器最低位的进位输入,移位信号的入/出和怎样处理AM2901产生的状态标志位的结果。二、开关位置说明:做脱机运算器实验时,要用到提供24位控制信号的微动开关和提供16位数据的拔动开关。微动开关是红色的,一共有三个,一个微动开关可以提供12位的控制信号,三个开关分别标有SWI1microswitch、SW2microswitch和SW3microswitch;数据开关是黑色的,左边的标有SWH的是高8位,右边的标有SWL的是低8位。微动开关与控制信号对应关系见表(从左到右):SW1MicroswitchSW2MicroswitchSW3MicroswitchT3-T0REQ/MIO/WEI2-I0I8-I7I6-I3BPORTAPORTSSTSSHSCIDC2DC1三、开关检测红色微动开关是该实验系统使用寿命最短的器件,开关好坏的检测方法比较简单,用户将五个控制机器工作方式的开关置于“1XX000”,从左面其第二个和第三个的开关处于任意位置,然后将两个未动开关上的24小纽子依次置为1(开关拨到上方为1),看对应的指示灯是否亮,如果有一个或数个指示灯不亮,则一般是开关除了问题。四、实验内容:在脱机方式下,对于给定指令分析其执行过程中运算的步骤,通过对AM2901运算器反需控制信号的设置,使之完成运算,并核对运算结果。五、实验步骤:在脱机方式下,通过设置SW1、SW2、SW3各微码字段和数据开关,可实现多种运算,以实现AAAAH-R1为例说明操作过程。1)按照下表中的微码和数据开关,对运算器进行设置。操作步骤如下:微动开关数据开关I8-I6I5-I3I2-I0SSTSSHSCiBAD15-D001100011101100000001不用AAAAHa)将教学机左下方的6个拨动开关置为1XX000(单步、16位、脱机、CACH);先按一下RESTET按键,再按一下START按键,进行初始化。b)通过16个数据开关设置立即数AAAAH。c)通过SW1、SW2、SW3设置各微码。2)按一次START键,立即数XXXXH置入R1,通过显示灯察看按START键后的输出。若要进行其它操作:a)重新设置SW1、SW2、SW3、数据开关,通过显示灯观察输出。b)然后按START键执行操作,通过显示灯观察按下START键后的输出,检查运算结果是否正确。3)完成下表的各种运算,记录按START键前和按START键后的ALU输出及标志位C、Z、V、S的值。运算I8—I0SSTSSHSCiBA压STEP前压STEP后ALU输出CZVSALU输出CZVSD1+0—>R001100011100100000000不用01h随机01h0000D2+0—>R101100011100100000001不用10h000010h0000R0+R1—>R001100000100l00000000000111h000021h0000R0-R1—>R0011001001001000l0000000101t10000F1h1000R1-R0—>R1011001001001000l000l00000Fh10000Eh1000R0∨Rl—>R00110110010010000000100000FH10000EH1000R0∧R1—>R001110000100100000000000101H100001H1000R0∨2Rl—>R00111100010010000000000010EH100001H1000¬(R0∨R1)—>R001111100100100000000000lFEH10000EH10012*R0—>R011101001100100000000不用FEH100lFCH0001R0/2—>0
本文标题:计算机组成原理实验一-二
链接地址:https://www.777doc.com/doc-4947964 .html