汇编第四次试验-武汉理工_第1页
汇编第四次试验-武汉理工_第2页
汇编第四次试验-武汉理工_第3页
汇编第四次试验-武汉理工_第4页
汇编第四次试验-武汉理工_第5页
已阅读5页,还剩4页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

汇编语言实验报告学院计算机科学与技术学院专业计算机科学与技术专业

班级

学号姓名实验时间:2011年11月

实验名称:I/O程序设计实验内容及要求:理解CPU对I/O设备的管理方法,以及数据传送方式。重点掌握中断程序的设计方法,以及DOS系统功能调用和BIOS调用。实验使用的关键技术和方法:关键技术方法DOS系统功能的调用MOVAH,01AL=输入字符INT21HMOVAH,02DL=输出字符INT21HMOVAH,09DS:DX=串地址INT21H子程序的调用与返回CallDSTret保存与恢复寄存器Pushaxpopax子程序的参数传送通过寄存器传送,通过存储器传送等1:阅读并调试《IBM-PC汇编语言程序设计实验教程》例3.9。在键盘上练习打字并统计时间:将例句显示在屏幕上,用户按照例句输入字符;当一个例句输入完后(回车键作为结束符),屏幕上以min:sec的格式显示输入时间。上述过程可以重复进行,当输入一个功能键时退出打字及时程序。2.习题8.14(选做)。3.设计并调试通过一个中断练习程序,要求实现以下功能:在主程序运行期间,每5秒钟响铃一次。当键盘上的某个键被按下时,显示一串字符;当键盘上的某个键再次被按下时,恢复主程序和响铃。(选做)实验设计方案说明:第一题代码STACKSEGMENTPARASTACK'STACK' DB256DUP(0)TOPLABELWORDSTACKENDSDATASEGMENTPARAPUBLIC'DATA' BUFFERDB16HDUP(0) BUFPT1DW0 BUFPT2DW0 KBFLAGDB0 PROMPTDB'*PLEASEPRACTISETYPING*',0DH,0AH,'$' SCANTABDB0,0,'1234567890-=',8,0 DB'qwertyuiop[]',0dh,0 DB'asdfghjkl;',0,0,0,0 DB'zxcvbnm,./',0,0,0 DB'',0,0,0,0,0,0,0,0,0,0,0,0,0 DB'789-456+1230.' EVEN OLDCS9DW? OLDIP9DW? STR1DB'abcdefghijklmnopqrstuvwxyz.' DB0DH,0AH,'$' STR2DB'christmasisatimeofjoyandlove.' DB0DH,0AH,'$' STR3DB'storewindowsholdtogsandgifts.' DB0DH,0AH,'$' STR4DB'peoplesendchristmascardsandgifts.' DB0DH,0AH,'$'STR5DB'santawishallpeoplepeaceonearth.'CRLFDB0DH,0AH,0AH,'$'COLONDB':','$'EVENSADDRDWSTR1,STR2,STR3,STR4,STR5COUNTDW0SECDW0MINDW0HOURSDW0SAVE_LCDW2DUP(?)DATAENDSCODESEGMENT ASSUMECS:CODE,DS:DATA,ES:DATA,SS:STACKMAINPROCFARSTART: MOVAX,STACK MOVSS,AX MOVSP,OFFSETTOP PUSHDS SUBAX,AX PUSHAX MOVAX,DATA MOVDS,AX MOVES,AX MOVAH,35H MOVAL,09H INT21H MOVOLDCS9,ES MOVOLDIP9,BX PUSHDS MOVDX,SEGKBINT MOVDS,DX MOVDX,OFFSETKBINT MOVAL,09H MOVAH,25H INT21H POPDS MOVAH,35H MOVAL,1CH INT21H MOVSAVE_LC,BX MOVSAVE_LC+2,ES PUSHDS MOVDX,SEGCLINT MOVDS,DX MOVDX,OFFSETCLINT MOVAL,1CH MOVAH,25H INT21H POPDS INAL,21H ANDAL,11111100B OUT21H,ALFIRST: MOVAH,0 MOVAL,3 INT10H MOVDX,OFFSETPROMPT MOVAH,9 INT21H MOVSI,0NEXT: MOVDX,SADDR[si] MOVAH,09H INT21H MOVCOUNT,0 MOVSEC,0 MOVMIN,0 MOVHOURS,0 STIFOREVER: CALLKBGET TESTKBFLAG,80H JNZENDINT PUSHAX CALLDISPCHAR POPAX CMPAL,0DH JNZFOREVER MOVAL,0AH CALLDISPCHAR CALLDISPTIME LEADX,CRLF MOVAH,09H INT21H ADDSI,2 CMPSI,5*2 JNENEXT JMPFIRST ENDINT: CLI PUSHDS MOVDX,SAVE_LC MOVAX,SAVE_LC+2 MOVDS,AX MOVAL,1CH MOVAH,25H INT21H POPDS PUSHDS MOVDX,OLDIP9 MOVAX,OLDCS9 MOVDS,AX MOVAL,09H MOVAH,25H INT21H POPDS STI RETMAINENDP CLINTPROCNEAR PUSHDS MOVBX,DATA MOVDS,BX LEABX,COUNT INCWORDPTR[BX] CMPWORDPTR[BX],18 JNERETURN CALLINCTADJ: CMPHOURS,12 JLERETURN SUBHOURS,12RETURN: POPDS STI IRETCLINTENDPINCTPROCNEAR MOVWORDPTR[BX],0 ADDBX,2 INCWORDPTR[BX] CMPWORDPTR[BX],60 JNEEXIT CALLINCTEXIT: RETINCTENDPDISPTIMEPROCNEAR MOVAX,MIN CALLBINDEC MOVBX,0 MOVAL,':' MOVAH,0EH INT10H MOVAX,SEC CALLBINDEC MOVBX,0 MOVAL,':' MOVAH,0EH INT10H MOVBX,COUNT MOVAL,55D MULBL CALLBINDEC RETDISPTIMEENDPBINDECPROCNEAR MOVCX,100D CALLDECDIV MOVCX,10D CALLDECDIV MOVCX,1 CALLDECDIV RETBINDECENDPDECDIVPROCNEAR MOVDX,0 DIVCX MOVBX,0 ADDAL,30H MOVAH,0EH INT10H MOVAX,DX RETDECDIVENDPKBGETPROCNEAR PUSHBX CLI MOVBX,BUFPT1 CMPBX,BUFPT2 JNZKBGET2 CMPKBFLAG,0 JNZKBGET3 STI POPBX JMPKBGETKBGET2: MOVAL,[BUFFER+BX] INCBX CMPBX,16H JCKBGET3 MOVBX,0KBGET3: MOVBUFPT1,BX POPBX RETKBGETENDPKBINTPROCFAR PUSHBX PUSHAX INAL,60H PUSHAX INAL,61H ORAL,80H OUT61H,AL ANDAL,7FH OUT61H,AL POPAX TESTAL,80H JNZKBINT2 MOVBX,OFFSETSCANTAB XLATSCANTAB CMPAL,0 JNZKBINT4 MOVKBFLAG,80H JMPKBINT2KBINT4: MOVBX,BUFPT2 MOV[BUFFER+BX],AL INCBX CMPBX,16H JCKBINT3 MOVBX,0KBINT3: CMPBX,BUFPT1 JZKBINT2 MOVBUFPT2,BXKBINT2: CLI MOVAL,20H OUT20H,AL POPAX POPBX STI IRETKBINTENDPDIS

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论