实验7 中断程序设计

实验7 中断程序设计

ID:5898347

大小:60.50 KB

页数:7页

时间:2017-12-27

实验7 中断程序设计_第1页
实验7 中断程序设计_第2页
实验7 中断程序设计_第3页
实验7 中断程序设计_第4页
实验7 中断程序设计_第5页
资源描述:

《实验7 中断程序设计》由会员上传分享,免费在线阅读,更多相关内容在行业资料-天天文库

1、实验七中断程序设计与I/O程序设计计科1093班伍林锋200911621323一、实验目的1. 学习中断的原理和设置中断向量,加深对中断处理程序的理解2、掌握dos和bios中断调用编写I/O程序。二、实验内容1、编写程序1:要求每隔5.5s在屏幕上显示提示符‘pleaseenter:’,然后从键盘读入一个字符并将这个字符的ASCII码送入内存输入缓冲区,共读入5个字符,然后将这5个字符在屏幕中央显示。源码:.modelsmall.stack.datacntdw100;计数次数mesdb5dup(0),'$';内存缓冲区strdb'pl

2、easeenter:$';提示字符串crlfdb0dh,0ah,'$';回车换行.codestart:movax,@datamovds,axmovsi,0;缓冲区指针moval,1chmovah,35hint21h;取原向量1chpushespushbx;保存原向量pushdsmovdx,offsetinputmovax,seginputmovds,axmoval,1chmovah,25hint21h;设置新向量1CH,对应中断处理程序inputpopdsinal,21h;读中断屏蔽寄存器pushaxandal,11111100bout

3、21h,al;增加定时器和键盘中断inal,20h;读中断命令寄存器pushaxmoval,11100000bout20h,al;使键盘中断的优先级高于定时器中断sti;开中断rotate:cmpsi,5jlrotatemovah,2movbh,0movdh,10movdl,30int10h;设置光标在屏幕中央movdx,offsetmesmovah,09int21h;显示内存缓冲区的字符串popaxout20h,al;恢复中断命令寄存器popaxout21h,al;恢复中断屏蔽寄存器popdxpopdsmoval,1chmovah,2

4、5hint21h;恢复原向量movax,4c00hint21h;-------------中断处理程序inputprocnearpushdspushaxpushcxpushdx;保存寄存器movax,@datamovds,axsti;开中断,允许中断嵌套deccnt;递减计数jnzexitmovah,9leadx,strint21h;显示提示字符串movah,0int16h;等待键盘输入movmes[si],al;接收字符到缓冲区incsimovah,9leadx,crlfint21h;显示回车换行movcnt,100;重新进行计数ex

5、it:cli;关中断popdxpopcxpopaxpopds;恢复寄存器iretinputendpendstart答:使键盘中断的优先级高于定时器中断moval,11100000bout20h,al;使键盘中断的优先级高于定时器中断sti;开中断备注:所有的PC机都有一个计时芯片(8253/8254定时器),初始化后以每秒约18.2次发出脉冲。每次脉冲调用计时器中断(INT08H)。计数器以计数频率18.2Hz进行计数,1小时对应计数值为65520次,1分钟对应计数值为1092次,1秒对应计数值为18.2次(取18次)。即时间计数器每5

6、5ms自动加1,也即两个计数之间的时间间隔是55ms,则要计时5.5s(5500ms),需要计数到100。关于INT08H的原理参见教材300页例8.52、编写程序2:实现时钟功能:要求循环调用dos中断读取系统时钟,并在屏幕中央10行30列的位置显示时钟格式“yyyy-mm-ddhh:mm:ss“,按下esc键则退出程序源码:.modelsmall.stack.datayydw?str1db5dup(0)str2db'-','-','',':',':'.codestart:movax,@datamovds,axmovsi,0movdi

7、,0;初始化指针movah,2ahint21h;读系统日期movyy,cx;保存年movstr1,dh;保存月movstr1+1,dl;保存日movah,2chint21h;读系统时间movstr1+2,ch;时movstr1+3,cl;分movstr1+4,dh;秒callstate;定位光标movbx,yycallbinidec;显示年movbp,5;循环次数s:calldisplay;显示格式符号calltime;依次显示显示月、日、时、分、秒decbpjnzsinal,60h;读键盘输入cmpal,01h;与esc键的扫描码比较

8、jzexit;按下esc键退出程序jmpstart;循环读取exit:movah,4chint21h;------------定位光标stateprocnearpushaxpushbxpushdxmovdh

当前文档最多预览五页,下载文档查看全文

此文档下载收益归作者所有

当前文档最多预览五页,下载文档查看全文
温馨提示:
1. 部分包含数学公式或PPT动画的文件,查看预览时可能会显示错乱或异常,文件下载后无此问题,请放心下载。
2. 本文档由用户上传,版权归属用户,天天文库负责整理代发布。如果您对本文档版权有争议请及时联系客服。
3. 下载前请仔细阅读文档内容,确认文档内容符合您的需求后进行下载,若出现内容与标题不符可向本站投诉处理。
4. 下载文档时可能由于网络波动等原因无法下载或下载错误,付费完成后未能成功下载的用户请联系客服处理。