您好,欢迎访问三七文档
当前位置:首页 > 电子/通信 > 综合/其它 > 微机原理及接口技术_2014实验指导
实验内容实验一系统认知实验实验二循环程序设计与调试实验三排序程序设计与调试实验四8253定时/计数器应用实验实验五D/A转换实验预备知识与实验准备:《微机原理应用实验教程》P1-11、P19-22、P34-38、P47-52P123-127、P130-131、P134-135、P138-13912050441、12050442、12050443班微机原理实验安排周次1班2班(1-32)2班(33-64)3班第9周星期二(4.15)20:00-22:00星期四(4.17)18:00-20:00星期二(4.15)20:00-22:00星期四(4.17)18:00-20:00星期三(4.16)20:00-22:00星期四(4.17)20:00-22:00星期三(4.16)20:00-22:00星期四(4.17)20:00-22:00第10周星期二(4.22)20:00-22:00星期四(4.24)18:00-20:00星期二(4.22)20:00-22:00星期四(4.24)18:00-20:00星期三(4.23)20:00-22:00星期四(4.24)20:00-22:00星期三(4.23)20:00-22:00星期四(4.24)20:00-22:00第12周星期二(5.6)20:00-22:00星期四(5.8)20:00-22:00星期二(5.6)20:00-22:00星期四(5.8)20:00-22:00星期三(5.7)20:00-22:00星期三(5.7)20:00-22:00实验地点:7号教学楼5层微机原理实验室购买试验报告纸:7号教学楼5层东第一个阳面家实验一系统认知实验实验目的:了解汇编语言的设计、编写和调试程序的方法,掌握DEBUG的使用。实验设备:装有DOS系统和MASM5.0的微机一台,或TDN86/88微机原理教学实验系统一台。实验内容:编程实现在屏幕上显示一个大写字母“A”或字符串“HelloWorld!”,用DEBUG调试程序。实验要求:1、上机前做好充分准备,包括源程序清单、调试步骤等;2、用DEBUG来调试程序,熟悉DEBUG的使用。实验步骤:1、编写程序并输入,检查无误后,经汇编、连接后运行,用DEBUG装入。2、用U命令反汇编程序,应用R、G等命令,观看运行情况。3、用D、E、A等命令查看、修改源数据,用G命令查看运行结果。4、用Q命令退出DEBUG。1.建立源文件使用EDIT软件,得到扩展名为ASM的汇编语言源程序文件。(扩展名.asm勿忘加!)2.汇编源程序使用汇编程序MASM对源程序进行汇编,生成OBJ、LST和CRF文件(后两种一般不需要,可直接回车)。如程序有错,可以根据提示信息,重新编辑、汇编源程序,直到没有严重错误为止。3.连接程序使用连接程序LINK,对汇编程序产生的目标文件进行连接,产生可执行的程序EXE。4.调试或运行程序上机过程1.编辑C:\8688EDIT文件名.ASM2.汇编C:\8688masm文件名.ASM3.连接C:\8688link文件名.obj4.调试C:\8688debug文件名.exe-U反汇编,记下程序首地址和结束地址-D段地址:偏移地址察看内存单元内容-E段地址:偏移地址修改内存单元内容空格修改下一个,回车结束修改-G=起始地址结束地址运行程序功能号功能调用参数返回参数01键盘输入并回显AL=输入字符02显示输出DL=输出字符08键盘输入无回显AL=输入字符09显示字符串DS:DX=串地址“$”结束字符串0A输入字符串DS:DX=缓冲区首地址(DS:DX)=缓冲区最大字符数DS:DX+1=实际输入字符数常用的几个DOS调用:参考源程序CODESEGMENTASSUMECS:CODESTART:MOVAH,2MOVDL,‘A’INT21HMOVAH,4CHINT21HCODEENDSENDSTART显示字母A返回DOS这个程序是调用2号DOS功能实现输出字母A。考虑:如用9号功能,则程序怎么写?DATASEGMENTWSTR1DB‘HelloWorld!’,CR,LF,‘$’CREQU0DHLFEQU0AHDATASEGMENTCODESEGMENTASSUMECS:CODE,DS:DATAMO:MOVAH,9MOVDX,SEGWSTR1MOVDS,DXMOVDX,OFFSETWSTR1INT21HMOVAH,4CHINT21HCODEENDSENDMO如把字符串“HelloWorld!”显示在屏幕上,则程序段:例:向指定的单元送10个字符,并将其显示出来datasegmentBUFDB11DB0DB11DUP(?)dataendscodesegmentassumecs:code,ds:dataMOVAX,DATAMOVDS,AXMOVDX,0FFSETBUFMOVAH,0AHINT21HLEADX,BUF+1MOVBX,DXMOVAL,[BX]MOVAH,0ADDBX,AX;INCBXMOVAL,’$’MOV[BX],ALMOVAH,9INCDXINT21Hretcodeendsend参考源程序DATASEGMENTMSG1DB13,10,‘Number’MSG2DB13,10,‘Notnumber’CODESEGMENTASSUMECS:CODE,DS:DATASTART:MOVAX,DATAMOVDS,AXMOVAH,1INT21HCMPAL,30HJLNotNumberCMPAL,39HJGNotNumberMOVDX,OFFSETMSG1MOVAH,9INT21HJMPEXITNotNumber:MOVDX,OFFSETMSG2MOVAH,9INT21HEXIT:MOVAH,4CHINT21HCODEENDSENDSTART实验二循环程序设计与调试实验目的:学习循环程序设计方法,熟悉汇编语言程序的设计、编写和调试方法。实验内容:1、计算sum=1+2×3+3×4+…+N×(N-1),当N×(N-1)≥200时结束。(即计算sum和N)2、求某数据区内负数的个数实验要求:1、上机前做好充分准备,包括源程序清单、调试步骤等;2、用DEBUG查看结果。实验设备:微机原理实验系统一台。STACKSEGMENTSTACKDW64DUP(?)STACKENDSCODESEGMENTASSUMECS:CODESTART:MOVDX,0001HMOVBL,02HA1:MOVAL,BLINCBLMULBLADDDX,AXCMPAX,00C8HJNAA1A2:INT03HCODEENDSENDSTARTSTACKSEGMENTSTACKDW64DUP(?)STACKENDSCODESEGMENTASSUMECS:CODESTART:MOVDI,3000HMOVCL,[DI]XORCH,CHMOVBL,CHINCDIA1:MOVAL,[DI]TESTAL,80HJEA2INCBLA2:INCDILOOPA1MOV[DI],BLINT03HCODEENDSENDSTARTSTACKSEGMENTSTACKDW64DUP(?)STACKENDSCODESEGMENTASSUMECS:CODESTART:MOVDI,3000HMOVCL,[DI]XORCH,CHMOVBL,CHINCDIA1:MOVAL,[DI]TESTAL,80HJEA2INCBLA2:INCDILOOPA1MOV[DI],BLINT03HCODEENDSENDSTARTSTACKSEGMENTSTACKDW64DUP(?)STACKENDSCODESEGMENTASSUMECS:CODESTART:MOVDI,3000HMOVCL,[DI]XORCH,CHMOVBL,CHINCDIA1:MOVAL,[DI]TESTAL,80HJEA2INCBLA2:INCDILOOPA1MOV[DI],BLINT03HCODEENDSENDSTART实验三排序程序设计与调试实验目的:学习分支、循环程序、子程序设计调试方法,熟悉汇编语言程序的设计、编写和调试方法。实验内容:2.5实验实验要求:1、上机前做好充分准备,包括源程序清单、调试步骤等;2、用DEBUG修改输入的字符,再运行程序,查看结果。实验设备:微机原理实验系统一台。STACKSEGMENTSTACKDW64DUP(?)STACKENDSCODESEGMENTASSUMECS:CODESTART:MOVCX,000AHMOVSI,300AHMOVBL,0FFHA1:CMPBL,0FFHJNZA4MOVBL,00HDECCXJZA4PUSHSIPUSHCXA2:DECSIMOVAL,[SI]DECSICMPAL,[SI]JAA3XCHGAL,[SI]MOV[SI+01H],ALMOVBL,0FFHA3:INCSILOOPA2POPCXPOPSIJMPA1A4:INT03HCODEENDSENDSTARTDATAREASEGMENT;定义数据段ADW10DUP(?)DATAREAENDSSTACKSEGMENT;定义堆栈段DW64DUP(?)STACKENDSPROGNAMSEGMENT;定义代码段MAINPROCFARASSUMECS:PROGNAM,DS:DATAREASTART:PUSHDSSUBAX,AX;DS:00压栈PUSHAXMOVAX,DATAREAMOVDS,AX;置数据段MOVCX,10;数组元素个数DECCXLOOP1:MOVDI,CX;外层循环,共N-1次MOVBX,0;内层循环量BX置0LOOP2:MOVAX,[BX]CMPAX,[BX+2];相邻两个数比较JGECOTINUE;前者大,转COTINUEXCHGAX,[BX+2];后者大,交换MOV[BX],AXCOTINUE:ADDBX,2;继续向后循环LOOPLOOP2MOVCX,DI;恢复CX值LOOPLOOP1;继续外层循环RETMAINENDPPROGNAMENDSENDSTART实验四并行接口8255A实验实验目的:1.学习并掌握8255的各种工作方式及其应用;2.学习在系统接口实验单元上构造实验电路。实验内容:不断检测8个开关K7~K0的通断状态并随时点亮对应的LED7~LED0,开关合上,对应的LED亮,开关闭上,对应的LED熄。端口地址为60H~63H。编写其控制程序。实验要求:连线前,关闭电源。实验结束后,关闭电源,把线取下来,重新装入仪器箱中,放好。实验设备:TDN86/51或TDN86/88教学实验系统。实验线路图见下页。实验线路图CODESEGMENTASSUMECS:CODESTART:MOVAL,82H;注:控制字可略有不同OUT63H,AL;写入控制字,B输入,A输出CHECK:INAL,61H;读入B口(开关)状态OUT60H,AL;将读入的数向A口输出以控制小灯JMPCHECK;继续检测开关状态CODEENDSENDSTART分别按F2、F3键进行编译和连接,注意此时不要加后缀.asm或.obj。输入源程序,经汇编、连接后,确认实验箱的电源已打开。然后按F5载入程序,提示CS:,输入0000;IP:输入2000。然后输入G=0000:2000,回车即可运行程序。拨动开关,可见小灯亮或灭。实验四8253定时/计数器应用实验实验目的:1.熟悉8253在系统中的典型接法。2.掌握8253的工作方式及应用编程。实验要求:连线前,关闭电源。实验结束后,关闭电源,把线取下来,重新装入仪器箱中,放好。实验设备:TDN86/51或TDN86/88教学实验系统。实验内容及实验步骤:1.8253芯片及在系统中功能介绍2.8253计数器应用实验数据总线缓冲器D0~D7计数器0计数器2计数器1GATE1GATE2GATE0CLK0CLK1CLK2OUT1OUT0OUT22423213456789101112131415161718192021228253CLK2OUT2GATE2GATE1CLK1A0O
本文标题:微机原理及接口技术_2014实验指导
链接地址:https://www.777doc.com/doc-2435648 .html