您好,欢迎访问三七文档
当前位置:首页 > 电子/通信 > 综合/其它 > 汇编语言与接口技术实验报告
汇编语言与接口技术实验报告学院:信息与电子工程学院专业:班级:学号:姓名:浙江科技学院2012-2013学年第1学期汇编语言与接口技术实验报告2012-2013学年第1学期第1页共30页实验1汇编语言程序设计一、实验目的1.熟悉MASM6.11汇编语言程序开发环境。2.掌握汇编语言程序的调试方法和常用的调试工具。二、实验内容1.安装MASM6.11。2.设在内存中首地址为BLOCK的区域存有一批数据:61H,84H,93H,0C4H,17H,0FFH,52H,2AH。分别按下列要求编写汇编语言程序:(1)视该批数据为8位无符号数,采用冒泡法将其按升序排序;(2)视该批数据为8位有符号数,采用冒泡法将其按升序排序。三、实验要求1.根据实验内容编写程序。2.上机调试程序。3.记录并分析程序运行结果。四、程序说明和程序流程图否开始读入数据N个计数N-1N小于0结束对比数据为第i个数据(初始i=0)和第i+1个数据比较两数交换位置i+1i7是是否汇编语言与接口技术实验报告2012-2013学年第1学期第2页共30页五、程序代码1.8位无符号数冒泡法排序程序如下:.modelsmall.datandw8blockdb61h,84h,93h,0c4h,17h,0ffh,52H,2ah.stack60h.code.startupmovax,@datamovds,axmovcx,ndeccxloop1:movdx,cxmovbx,0loop2:moval,block[bx]cmpal,block[bx+1]jnacontinuexchgal,block[bx+1]movblock[bx],alcontinue:addbx,1looploop2movcx,dxlooploop1.exitend2、8位有符号数冒泡排序程序如下汇编语言与接口技术实验报告2012-2013学年第1学期第3页共30页.modelsmall.datandw8blockdb61h,84h,93h,0c4h,17h,0ffh,52H,2ah.stack60h.code.startupmovax,@datamovds,axmovcx,ndeccxloop1:movdx,cxmovbx,0loop2:moval,block[bx]cmpal,block[bx+1]jlecontinuexchgal,block[bx+1]movblock[bx],alcontinue:addbx,1looploop2movcx,dxlooploop1.exitend六、程序运行结果及分析汇编语言与接口技术实验报告2012-2013学年第1学期第4页共30页在命令行debug,反汇编找到初始程序入口0017查看cup寄存器的内容汇编语言与接口技术实验报告2012-2013学年第1学期第5页共30页汇编语言与接口技术实验报告2012-2013学年第1学期第6页共30页实验2系统中断接口实验一、实验目的1.熟悉可编程中断控制器8259A的使用方法。2.掌握软、硬件中断的编程技术。二、实验内容1.软件中断自定义一个软件中断,中断类型码为78H。在中断服务程序中,完成ASCII码到压缩的BCD码的转换,ASCII码内存首地址为ASCADDR,长度为NUMBER,转换后的BCD码存放在以BCDADDR为首地址的存储区中。2.硬件中断设IRQ10~IRQ12(中断类型号为72H~74H)接外部硬件中断源1~3,外部中断源的中断请求通过按数字键“1”~“3”模拟产生。在中断服务程序中显示“Interruptserviceroutinen(n=1~3)isrunning…”字样。三、实验要求1.编写主程序和中断服务程序。2.上机调试程序。3.记录并分析程序运行结果。四、程序说明和程序流程图是开始定义软件中断ASCⅡ压缩是否压缩完成?结束软件中断否开始设置外部硬件中断显示字样是否按数字键?否是结束硬件中断汇编语言与接口技术实验报告2012-2013学年第1学期第7页共30页五、程序代码实验1代码:dsegsegmentascaddrdb'0123456789'numberdb10bcdaddrdb20dup(?)dsegendscsegsegmentassumecs:cseg,ds:dsegstart:pushdsxorax,axpushaxmovax,segasc_bcdmovds,axmovdx,offsetasc_bcdmovax,2578hint21hint78hretfasc_bcdprocmovax,dsegmovds,axmovsi,offsetascaddrmovdi,offsetbcdaddrmovch,numbershrch,1movcl,4汇编语言与接口技术实验报告2012-2013学年第1学期第8页共30页cont:movax,[si]andal,0fhshlah,cloral,ahmov[di],aladdsi,2incdidecchjnzcontiretasc_bcdendpcsegendsendstart实验2代码:dsegsegmentdisp1db'Interruptserviceroutine1isrunning...',0ah,0dh,'$'disp2db'Interruptserviceroutine2isrunning...',0ah,0dh,'$'disp3db'Interruptserviceroutine3isrunning...',0ah,0dh,'$'dsegendscsegsegmentassumecs:cseg,ds:dsegstart:pushdsxorax,axpushaxmovax,segisradd1movds,axmovdx,offsetisradd1汇编语言与接口技术实验报告2012-2013学年第1学期第9页共30页movax,2572hint21hmovax,segisradd2movds,axmovdx,offsetisradd2movax,2573hint21hmovax,segisradd3movds,axmovdx,offsetisradd3movax,2574hint21hinal,0a1handal,11100011bout0a1h,alkeyin:movah,0int16hcmpal,'1'jzserve1cmpal,'2'jzserve2cmpal,'3'jzserve3cmpal,'q'jzexitjmpkeyinserve1:int72hjmpkeyin汇编语言与接口技术实验报告2012-2013学年第1学期第10页共30页serve2:int73hjmpkeyinserve3:int74hjmpkeyinexit:retfisradd1procpushdspushaxmovax,segdisp1movds,axmovdx,offsetdisp1movah,9int21h;moval,20h;out0a0h,alpopaxpopdsiretisradd1endpisradd2procpushdspushaxmovax,segdisp2movds,axmovdx,offsetdisp2movah,9int21h;moval,20h汇编语言与接口技术实验报告2012-2013学年第1学期第11页共30页;out0a0h,alpopaxpopdsiretisradd2endpisradd3procpushdspushaxmovax,segdisp3movds,axmovdx,offsetdisp3movah,9int21h;moval,20h;out0a0h,alpopaxpopdsiretisradd3endpcsegendsendstart汇编语言与接口技术实验报告2012-2013学年第1学期第12页共30页六、程序运行结果及分析实验1内存结果实验2:汇编语言与接口技术实验报告2012-2013学年第1学期第13页共30页汇编语言与接口技术实验报告2012-2013学年第1学期第14页共30页实验3键盘接口实验一、实验目的1.了解键盘接口的工作原理。2.掌握直接在硬件基础上编写键盘处理程序的方法。3.熟悉键盘的BIOS和DOS功能调用。二、实验内容设计一个中断方式的用户键盘处理程序,其功能是直接从数据端口(8255的PA端口,地址为60H)读取键盘的扫描码,并通过换码指令XLAT将扫描码转换为ASCII字符显示在屏幕上。当程序运行时,可通过键入ESC键,使键盘的管理在用户键盘处理程序和系统键盘处理程序(INT09H)之间进行切换。三、实验要求1.编写主程序和中断服务程序。2.上机调试程序。3.记录并分析程序运行结果。四、程序说明和程序流程图键盘扫描有键闭合延时去键抖动扫描键盘找到闭合键计算键值建立有效标志返回NNY建立有效标志闭合键释放Y汇编语言与接口技术实验报告2012-2013学年第1学期第15页共30页五、主程序和中断服务程序代码csegsegmentorg100hassumecs:csegstart:jmpinstallflagdb0oldintdd?scantabdb0,0,'1234567890-=',08h,0db'QWERTYUIOP[]',0dh,0db'ASDFGHJKL;',0,0,0,0db'ZXCVBNM,./',0,0,0,20hdb13dup(0)db'789-456+1230#'kbint:pushaxpushbxpushdspushcspopdsstimovbx,offsetscantabinal,60htestal,80hjnzkeyendpushaxinal,61horal,80hout61h,al汇编语言与接口技术实验报告2012-2013学年第1学期第16页共30页andal,7fhout61h,alpopaxcmpal,01hjnzdispincflagdisp:testflag,01hjzuserpopdspopbxpopaxjmpcs:oldintuser:xlatcmpal,0jzkeyendmovah,14int10hmoval,0dhint10hmoval,0ahint10hkeyend:moval,20hout20h,alpopdspopbxpopaxiretinstall:cli汇编语言与接口技术实验报告2012-2013学年第1学期第17页共30页pushcspopdsmovax,3509hint21hcmpbx,offsetkbintjnzloadint20hload:movwordptroldint,bxmovwordptroldint+2,esmovdx,offsetkbintmovax,2509hint21hinal,21handal,11111101bout21h,alstimovdx,offsetinstallint27hcsegendsendstart六、程序运行结果及分析1.当执行程序后,输入小写字母显示大写,键入ESC后切换到操作系统自己的中断,输入小写显示小写。汇编语言与接口技术实验报告2012-2013学年第1学期第18页共30页汇编语言与接口技术实验报告2012-2013学年第1学期第19页共30页实验4显示器接口实验一、实验目的1.了解显示器接口的工作原理。2.熟悉显示器的BIOS和DOS功能调用。二、实验内容在屏幕上显示一张移动的“笑脸”。“笑脸”字符的ASCII码为01H或02H,要使“笑脸”动起来,可按如下步骤编程:1.屏幕上显示“笑脸”;2.延迟一段时间;3.清除“笑脸”(可用清除部分屏幕或在“笑脸”位置显示空字符的方法实现);4.改变“笑脸”的行、列坐标;5.返回第1步,重复上述过程。三、实验要求1.根据实验内容编写程序。2.上机调试程序。3.记录并分析程序运行结果。四、程序说明和程序流程图否开始在屏幕上显示笑脸延迟一段时间清除笑脸改变笑脸的行、列坐标是否返回?结束是汇编语言与接口技术实验报告2012-2013
本文标题:汇编语言与接口技术实验报告
链接地址:https://www.777doc.com/doc-7323036 .html