资源描述:
《操作系统课程设计---自制时钟》由会员上传分享,免费在线阅读,更多相关内容在学术论文-天天文库。
1、HUBEINORMALUNIVERSITY作业题目操作系统实验报告学生学号2010115010aaa学生姓名胖丁小小所在院系计算机科学与技术学院专业名称计算机科学与技术完成时间2012122827一、实验报告题目:自制时钟二、问题描述编制和调试一个自制时钟,在屏幕右上角当时的时间;按XX:XX:XX形式显示,并且能正确进位,24小时应消零。系统每隔55ms就自动调用新的中断,在主程序中取系统时间,并驻留程序。在新的1Ch号中断中显示时间。编制一个汇编程序,它应包括两个部分:1)新的1CH中断处理程序,其功能是,首先执行原1CH中断处理,然后取当时系统时间
2、,处理进位,正确显示当时的时间。2)初始化程序:其功能是,首先取原1CH中断向量,然后设置新1CH中断向量,最后驻留新1CH中断处理程序三、数据结构及符号说明CLOCK:设置新的1CH中断处理程序并常驻内存。DISPLAY:利用宏定义及宏调用保存光标位置,并写入字符。SHOW:在在屏幕右上角显示正确变化的当时时间TRNS:利用宏定义及宏调用将时间的二进制转换成ASCII字符显示出来。CURSOR:在屏幕右上角显示当时的系统时钟,如20:05:33。DEAL:对时间的进位进行处理控制。四、流程图27YCount=0?入口执行原1ch中断保存各寄存器Coun
3、t计数减1int-1ch中断返回Count恢复初值Sec2+1进行一系列计数、进位处理恢复各寄存器取光标位置并保存置新光标位置依次显示hour1等开始的8个字节内容显示回车恢复光标位置1ch中断处理程序入口取1ch中断向量并保存设置新的1ch中断向量取系统时间将时、分、秒转换为可显示的形式,存入相应变量单元程序驻留退出init初始化程序YCount=0?入口执行原1ch中断保存各寄存器Count计数减1int-1ch中断返回Count恢复初值Sec2+1进行一系列计数、进位处理恢复各寄存器取光标位置并保存置新光标位置依次显示hour1等开始的8个字节内容
4、显示回车恢复光标位置1ch中断处理程序入口取1ch中断向量并保存设置新的1ch中断向量取系统时间将时、分、秒转换为可显示的形式,存入相应变量单元程序驻留退出init初始化程序N一、源程序及说明27.286DATASSEGMENTh1db0h2db0m1db0m2db027s1db0s2db0DATASENDSCODESSEGMENTASSUMECS:CODES,DS:DATASSTART:MOVAX,DATASMOVDS,AXmainprocfar;保存原有1ch中断moval,1chmovah,35hint21hpushespushbxpushds;设
5、置新的1ch中断movax,segclockmovds,axmovdx,offsetclockmoval,1chmovah,25hint21h;常驻内存movax,3100hint21h;恢复原有1ch中断popdspopdxpopdsmoval,1chmovah,25hint21h;退出movax,4c00hint21hmainendpclockprocfarcallgettimeiretclockendp;获取系统时间gettimeprocnear27pushamovah,2chint21h;将除数10保存在bl中movbl,10d;处理小时mova
6、l,chcbwdivblmovh1,almovh2,ah;处理分钟moval,clcbwdivblmovm1,almovm2,ah;处理秒moval,dhcbwdivblmovs1,almovs2,ah;显示时间callshowtimepoparetgettimeendp;显示时间showtimeprocnearpusha;获取当前光标位置movbh,0hmovah,03hint10hpushdxpushcx;重置光标movbh,0dmovdh,0dmovdl,72dmovah,02hint10h;显示时间addh1,30h27moval,h1movah
7、,0ehint10haddh2,30hmoval,h2movah,0ehint10h;显示":"moval,3ahmovah,0ehint10h;显示分钟addm1,30hmoval,m1movah,0ehint10haddm2,30hmoval,m2movah,0ehint10h;显示":"moval,3ahmovah,0ehint10h;显示秒adds1,30hmoval,s1movah,0ehint10hadds2,30hmoval,s2movah,0ehint10h;恢复原来光标位置popcxpopdxmovbh,0hmovah,02hint10
8、hpoparetshowtimeendpCODESENDS2727ENDSTAR