您好,欢迎访问三七文档
当前位置:首页 > 电子/通信 > 电子设计/PCB > 129019552840008750微机原理实验指导书
实验须知一、预习要求1.实验前认真阅读实验教程中有关内容,明确实验目的、内容和实验任务。2.每次实验前做好充分的预习,对所需预备知识做到心中有数。3.实验前应编好源程序,并对调试过程、实验结果进行预测。二、实验要求1.实验课请勿迟到,缺席。2.爱护设备,保持清洁,不随意更换设备。3.认真完成实验任务,实验结果经教师检查。4.做硬件实验时,严禁带电操作,即所有的接线、改线及拆线操作均应在不带电的状态下进行,并注意防止导线堵塞插孔。5.发生事故,应立即切断电源,并马上向教师报告,检查原因,吸取教训。6.实验完毕,请整理实验设备,正常关机,再离开实验室。三、报告要求每次实验后,应递交一份实验报告,报告中应包含下列内容:1.实验名称、实验人姓名、学号、班级,所用设备号。2.实验目的、任务。3.硬件实验应画出各任务的完整电路图。4.画出各任务程序流程图。5.写出实验调试情况,包括上机时遇到的问题及解决办法、实验结果分析等,并附上调试好的程序清单(应加适量注释)。6.总结实验中的心得体会,提出对实验内容、方案等的建议、意见或设想等。软件部分实验实验一DEBUG的使用【实验目的】1.学习使用DEBUG程序的各种命令。2.掌握用DEBUG调试自编程序的方法,为以后实验打下基础。【实验性质】验证性实验(学时数:2H)。【实验内容】1.进入DEBUG后,首先用命令R查看当前DS和IP寄存器内容,记录此值。2.练习R,D,A,U,T,P,G命令的使用。3.用A命令汇编下列程序段,完成将DS:2000开始的5个字节内存内容相加,并把相加的结果存放在DS:2005内存单元中,用DEBUG调试﹑运行该程序,查看运行结果,观察程序段能否完成指定功能,若不能,说明原因。MOVCX,5MOVAL,0MOVBX,2000NEXT:ADDAL,[BX]INCBXLOOPNEXTMOV[BX],ALINT3步骤:1)用A命令将程序键入到100H开始的内存中,在键入时记下标号NEXT的实际地址,在键入LOOP指令时NEXT用实际地址值代替。2)用U命令检查键入的程序及对应的机器码。3)用E20000102030405将2000H开始的前5个内存单元的内容修改为01、02、03、04、05,用D命令查看修改结果,并记录结果。4)用T命令逐条运行上述小程序指令,检查并记录有关寄存器、存储单元内容及ZF情况。5)用F2000L050203040506将2000H开始的5个内存单元的内容修改为02、03、04、05、06,用D命令查看修改结果,并记录修改结果。6)用G=100全速运行上述小程序,用D20002005查看运行结果并记录运行结果。4.利用T,P,G命令,执行下列程序段,注意它们的不同之处。(1)MOVDI,300MOVSI,400MOVCX,3CLDREPMOVSBINT3(2)先在CS:200处汇编一条RET指令,再在CS:100处汇编。MOVBX,200CALLBXINT3然后从MOVBX,200处开始执行。5.用命令A汇编下列指令,并判断指令正误并说明原因。(1)RORAX,8(2)LEADI,[AX](3)MOVDS,2010(4)PUSHAL(5)OUT900,AL(6)MOV[BX],0【预习要求】1.仔细阅读附录中“汇编语言上机操作过程及程序调试技术”部分的内容。2.根据实验要求,对各项结果进行预测。【思考题】1.指令MOV[BX],AX中,操作数[BX]的寻址方式是什么?在DEBUG下执行完该指令后,如何查看执行结果?2.可否随意在DEBUG提示符“-”后不带参数发出命令G?什么情况下使用命令G时,可不用“=”给出执行首地址?【报告要求】1.分析任务5中各条指令错误原因。2.说明命令T和P的区别。3.写出任务3的编辑调试过程,并附上调试记录。4.回答思考题。【实验提示】1.DEBUG的进入⑴如果是首次进入DEBUG编程,则只要在DOS提示符下键入DEBUG↙,即可进入DEBUG环境,显示提示符“-”。⑵如果要对某个程序使用DEBUG进行调试,只要在DOS提示符下键入DEBUG文件名↙,即可进入DEBUG环境,显示提示符“-”。如:Cdebugexam.exe↙2.程序的汇编与反汇编⑴源程序可以在DEBUG下,用汇编命令A输入到内存中,只需在DEBUG提示符“-”下,键入汇编命令A↙,并在显示“段寄存器地址:偏移地址”后面键入你自己编写的程序,每键入一条,按一次回车键。-A↙127B:0100MOVCX,5↙127B:0103MOVAL,0↙127B:0105MOVBX,2000↙┇⑵如果进入DEBUG时是使用“DEBUG文件名↙”进入的,那么在进入DEBUG状态后,可用反汇编命令U,将调入的程序显示出来:-U↙127B:0100B90500MOVCX,5127B:0103B000MOVAL,0127B:0105BB0020MOVBX,2000┇3.在DEBUG状态下,对所编写文件存盘的步骤⑴给程序命名-N文件名.COM↙⑵将文件长度放入BX、CX中(高位放入BX,低位放入CX中)-RBX↙(注意!!!由于文件长度一般较小,所以切记BX中付0值)-RCX↙(文件最末偏移地址减去文件开始的偏移地址即文件长度)⑶用写盘命令W把正在调试的内存中程序写入磁盘中-W〈地址〉↙(文件开始地址)退出DEBUG状态用Q命令:-Q↙4.在DEBUG状态下,建议使用DOS分配给用户的内存可用区在DEBUG状态下,用户可对所有寄存器、RAM内存随意查看和修改,但由于对DOS操作系统在内存中存放情况不了解,可能会将存放有操作系统程序的内存内容破坏,从而可能引起系统的异常,出现死机现象,故建议使用DOS分配给用户的内存可用区,其低端地址是刚进入DEBUG时,用命令R查看到的DS:IP。5.用连续执行命令G应注意问题用连续执行命令G执行程序时,注意给出执行程序的首地址,并注意执行的程序中有返回DEBUG功能的程序段,如指令INT20H或断点设置INT3,否则发出命令后,很容易出现死机,原因是无返回程序段使系统返回命令接受状态,CPU将不断到内存中取指令、执行指令,使用户失去对系统的控制。为避免这种情况,可在用户程序段结尾加上一条INT20H指令,或INT3指令。6.关于任务5DS:2000单元开始的5个字节内容,可用填充命令F给其赋值。-F2000L50102030405↙(在执行程序前用F命令给单元赋值)之后,运行任务5程序段,检查运行结果是否正确。实验二两个多位十进制数相加实验【实验目的】1.熟悉在PC机上建立、汇编、连接、调试和运行汇编语言程序的过程。2.掌握数据传送和算术运算指令的用法。3.熟悉和掌握用DEBUG调试程序的方法。【实验性质】验证性实验(学时数:2H)。【实验内容】1.将两个多位十制数相加,要求加数和被加数均以ASCII码形式各自顺序存放在以DATAl和DATA2为首的5个内存单元中(低位在前),结果送DATA3处。2.将上题改为高字节在前低字节在后的形式存放数据,程序如何改变?3.上述程序只显示了相加结果,没有显示加数和被加数,如果按47193+28056=75249格式显示,程序如何修改?4.如果考虑5位十进制数向更高位有进位情况,程序如何修改?实验说明:汇编语言没有十进制加法指令,ADD/ADC加法指令的运算对象是二进制数,如果要进行BCD码数的加法,需要对结果进行修正。组合BCD码的加法调整指令为DAA,它针对AL寄存器中的组合BCD码数之和进行修正。对于未组合BCD码的加法调整指令为AAA(加法的ASCII码调整指令),它将存于AL寄存器中的一位ASCII码数加法运算的结果调整为一位拆开型十进制数,仍保留在AL中,如果向高位有进位(AF=1),则进到AH中。对于多字节的ASCII码相加,只能从最低位开始逐个字节地进行加法操作,并随即进行调整。内容1参考程序清单(WJSY2.ASM):DATASEGMENTDATA1DB33H,39H,31H,37H,34HDATA2DB36H,35H,30H,38H,32HDATA3DB5DUP(?)DATAENDSCODESEGMENTASSUMECS:CODE,DS:DATASTART:MOVAX,DATAMOVDS,AXMOVCX,5;计数MOVSI,0;做变址用,因从DATA1的第一个数取数,故SI=0CLCNEXT:MOVAL,DATA1[SI];取被加数给ALADCAL,DATA2[SI];取加数和AL相加AAA;未组合十进制数加法调整指令MOVDATA3[SI],AL;结果送至DATA3处INCSI;修改SI指向下一位数LOOPNEXTMOVSI,5;因显示是从高位到低位,故SI=5L:ADDDATA3[SI-1],30H;还原成ASCII码MOVDL,DATA3[SI-1]MOVAH,02;送显示INT21HDECSIJNZLMOVAH,4CH;返回DOSINT21HCODEENDSENDSTART运行结果:75249【实验要求】1.实验内容1、内容2为基础题,必须做,完成后可得7分。2.实验内容3为提高题,完成后可再加2分。3.实验内容4为提高题,完成后可再加1分。【预习要求】1.仔细阅读课本及相应教材。2.参照程序框图编制源程序,准备好多组运算数据,以供校验。【思考题】1.一个段的大小为多少?一定是64KB吗?如何在DEBUG下查看程序在内存的存放情况?2.加数与被加数都是ASCII码形式,在作相加运算时,是否要先转换为十六进制数?【报告要求】1.报告要写实验目的、实验内容。2.列出运行正确的源程序清单,加上适当注释,写出执行结果及结果分析。3.回答思考题。4.写出实验总结。【实验提示】打开MASM文件夹,有四个文件EDIT.COM,MASM.EXE,LINK.EXE,DEBUG.COM我们要用到。1.进入EDIT编辑环境建立和修改汇编源程序文件(文件名要以.ASM结尾)2.用MASM命令汇编源文件以产生相应的目标文件(OBJ文件)3.用LINK命令连接目标文件以产生可执行文件(EXE文件)4.用DEBUG调试、运行可执行程序。参考程序框图:注:该框图考虑了五位十进制数向更高位有进位的情况。显示被加数和加数清除进位标志CX计数值5执行ADC带进位加法运算AAA调整AH0结果送缓冲数据区调整偏移量CX-1=0?AH将FR低8位AHAH01[BX]AH十六进制结果转化为ASCII码表示的数字串显示结果NY结束实验三字符串匹配程序【实验目的】1.掌握提示信息的使用方法及键盘输入字符串的用法。2.进一步掌握串操作指令的用法。【实验性质】验证性实验(学时数:3H)。【实验内容】1.编写程序,实现两个字符串比较,当两字符串完全相同时,才显示“MATCH”,如果有一个字符不同,则显示“NOMATCH”。字符串由键盘输入。2.编写程序,实现密码的设置。要求:首先在屏幕上提示:“Pleaseinputthepassword:”,然后从键盘输入密码,接着提示:“Pleaseinputthepasswordagain:”,从键盘再输入一遍密码,如果两次输入的密码相同,则提示:“OK!Succedinsettinguppassword!”,如果两次输入的密码不同,则提示:“Sorry,Pleaseinputpasswordagain:”,让用户重新设置密码,直至设置成功。3.利用密码登录系统,密码可由程序员自己设定,在数据段定义。首先在屏幕上提示:“Pleaseinputthepassword:”,从键盘输入密码,如果密码正确,显示:“Welcometousingthesystem!”,如果密码不正确,显示“Passworderror,Pleaseinputpasswordagain:”,等待用户输入密码,密码最多输入3次,超过3次,显示“Sorry!Youcan’tenterthesystem!”,程序结束。实验内容1参考程序清单:CRLFMACRO;宏定义MOVAH,02HMOVDL,0DH;
本文标题:129019552840008750微机原理实验指导书
链接地址:https://www.777doc.com/doc-3096910 .html