微原软件实验三:中断实验与编程

微原软件实验三:中断实验与编程

ID:38800938

大小:71.50 KB

页数:7页

时间:2019-06-19

微原软件实验三:中断实验与编程_第1页
微原软件实验三:中断实验与编程_第2页
微原软件实验三:中断实验与编程_第3页
微原软件实验三:中断实验与编程_第4页
微原软件实验三:中断实验与编程_第5页
资源描述:

《微原软件实验三:中断实验与编程》由会员上传分享,免费在线阅读,更多相关内容在行业资料-天天文库

1、微原软件实验报告专业:信息工程学生姓名:×××指导教师:××完成时间:2013年12月20日实验三:中断实验与编程北京邮电大学微机原理软件实验报告第7页共7页微原软件实验报告一、实验目的加深理解中断的含义,熟悉计数器8253和中断控制器8259A的使用。二、实验内容1、实验要求编一程序,在显示器上显示时、分、秒。借用计数器8253的Timer0作为中断源,通过8259A向CPU发中断,每10ms产生一次中断。在中断服务程序中管理刷新时、分、秒。Ø输入文件名(如CLK)后清屏后显示:Currenttimeis:x

2、x:xx:xx(时分秒键盘输入)打回车,时、分、秒开始计时。时钟不停的刷新。Ø当键入CTRL+C时,停止计时,返回系统,且系统正常运行不死机。第7页共7页微原软件实验报告2、程序流程图图1:程序流程图第7页共7页微原软件实验报告3、源程序datasegmentpublic'data'count100db100;100个10ms=1s,此处count100起计数作用tenhourdb0;小时十位数hourdb0,':';小时个位数tenmindb0;分钟十位数minutedb0,':';分钟个位数tensecdb

3、0;秒十位数seconddb0;秒个位数dataendsstacksegmentstack'stack'db256dup(0)stackendscodesegmentpublic'code';为code段和data段指定同一个段基址assumecs:codestart:movax,datamoves,axassumees:datamovsi,82h;si为源地址,默认参数存储位置首地址,es和ds均指向此位置,比如“11:11:11”movdi,offsettenhour;目的地地址movcx,8;移动字符串的

4、长度cld;置方向标志DF=0,字符串操作时指针自动增量repmovsb;将si起始的8个数据移动到di起始的地址movds,axassumeds:datamovah,0;调用BIOS功能,读键盘(作用:等待闹钟开启)int16h;AH=键入字符的扫描码,AL=键入字符的ASCII码cli;使中断标志IF=0,屏蔽INTR中断,对NMI和软中断没有影响movax,0moves,ax;因为后面的stosw默认段基址为es,所以此处要把es置零movdi,20hmovax,offsettimer;中断子程序time

5、r的偏移量stosw;字符串填充,将AX的内容(timer偏移量)存入di所指向的单元,di的增减取决于DF,默认段基址总是ESmovax,cs第7页共7页微原软件实验报告stosw;将主程序存储在timer子程序之后(因为di会自动增加)moval,36hout43h,al;设置8253控制字为36Hmovbx,11932;分频系数为11932,分频结果1.1932MHz/11932=100Hz,10ms变化一次moval,bl;分两次设置分频系数out40h,almoval,bhout40h,almoval

6、,0fch;主PIC端口设置为0fchout21h,alsti;开中断,允许外部中断forever:movbx,offsettenhourmovcx,8dispclk:moval,[bx]calldispcharincbxloopdispclk;调用显示子程序,显示初始状态时间,比如”11:11:11"moval,0dhcalldispchar;调用显示子程序,显示换行moval,secondnext:cmpal,second;判断second是否发生变化jenext;如果没有,循环比较jmpforever;如

7、果有变化,刷新输出timerprocfar;中断程序timerpushaxdeccount100;计数100次jnztimerx;如果计数小于100,跳出中断movcount100,100;否则重置count100<=100;1s已经到达incsecond;加一秒cmpsecond,'9';判断大小,用于进位,以下原理相同jletimerxmovsecond,'0'第7页共7页微原软件实验报告inctenseccmptensec,'6'jltimerxmovtensec,'0'incminutecmpminut

8、e,'9'jletimerxmovminute,'0'inctenmincmptenmin,'6'jltimerxmovtenmin,'0'inchourcmphour,'9'jaadjhourcmphour,'3'jnztimerxcmptenhour,'1'jnztimerxmovhour,'1'movtenhour,'0'jmpshorttimerx;段内短转移adjhour:i

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

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

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