微机原理及接口技术 2014实验指导

整理文档很辛苦,赏杯茶钱您下走!

免费阅读已结束,点击下载阅读编辑剩下 ...

阅读已结束,您可以下载文档离线阅读编辑

资源描述

实验内容实验一系统认知实验实验二循环程序设计与调试实验三排序程序设计与调试实验四8253定时/计数器应用实验实验五D/A转换实验预备知识与实验准备:《微机原理应用实验教程》P1-11、P19-22、P34-38、P47-52P123-127、P130-131、P134-135、P138-13911020141、11020142、11020143班微机原理实验安排周次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,0AHINT21HLEADX,BUF+1MOVBX,DXMOVAL,[BX]MOVAH,0ADDBX,AX;INCBXMOVAL,’$’MOV[BX],ALMOVAH,9INCDXINT21Hretcodeendsend参考源程序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实验四8253定时/计数器应用实验实验目的:1.熟悉8253在系统中的典型接法。2.掌握8253的工作方式及应用编程。实验要求:连线前,关闭电源。实验结束后,关闭电源,把线取下来,重新装入仪器箱中,放好。实验设备:TDN86/51或TDN86/88教学实验系统。实验内容及实验步骤:1.8253芯片及在系统中功能介绍2.8253计数器应用实验数据总线缓冲器D0~D7计数器0计数器2计数器1GATE1GATE2GATE0CLK0CLK1CLK2OUT1OUT0OUT22423213456789101112131415161718192021228253CLK2OUT2GATE2GATE1CLK1A0OUT1GATE0A1VCCGNDOUT0CLK0CSWRRDD7D6D5D4D3D2D1D0R/W逻辑电路RDWRA0A1CS控制寄存器D7D0D1D2D3D4D5D6:计数器选择00计数器0控制寄存器01计数器1控制寄存器10计数器2控制寄存器11无用()00锁定当前计数器值供CPU读01读/写计数器低8位10读/写计数器高8位11先读/写计数器低8位再读/写计数器高8位:计算方式0二进制1二进制转十进制000方式0:工作方式001方式1010方式2011方式3100方式4101方式58253的内部结构及引脚8253的控制字1.8253芯片及在系统中功能介绍OUT0CLK0GATE09OPCLK(1.19MHZ)D7D6D5D4D3D2D1D0CLK2CSWRRDGATE2OUT2A0XD08XD71XD62XD53XD44XD35XD26XD17IOY221XIOR22XIOW23XA019XA12018CLK216GATE217OUT28253A111+5V108259-IRQ0151.8432MHZ14+5V138251-TXCLKOUT1CLK1GATE1+5V系统中8253连接图系统中,8253的0#通道输出线与8259的0

1 / 31
下载文档,编辑使用

©2015-2020 m.777doc.com 三七文档.

备案号:鲁ICP备2024069028号-1 客服联系 QQ:2149211541

×
保存成功