湖南工程学院课程设计
一.课题的主要内容
我是做的第三个课题:
(3)利用INT 1CH(大约每秒中断18.2次)编写一个中断驻留程序,要求在屏幕的右上角显示计算机中当前系统时间,显示格式为
时:分:秒:1/100秒
本课题主要是要完成一个中断驻留程序,要求在屏幕的右上角上显示当前系统时间,时间格式为时:分:秒。
完成该课题的系统时间的功能,需要不断的中断以同步显示系统时间,这里我们需要利用INT 1CH,平均每秒中断18.2次,以这样的频率同步显示系统时间足以满足人们的视觉效果。完成系统时间同步的前提,还需要读取系统时间和显示系统时间。
1
湖南工程学院课程设计
二.课题的功能模块的划分
显示系统时间程序可以大致分为三个模块: 1. 利用1ch号功能来重定位中断程序的入口地址
2. 调用21号中断的31h程序结束并驻留功能,使得显示时间的子程序常驻内存 3. 显示系统时间模块 功能模块图如图2.1:
系统按每秒18。2次的频率调用
Y
开始 重定位中断程序入口地址 调用程序结束并驻留功能 显示时间模块 N 按任意键结束 结束 图2.1 显示系统时间功能模块图 2
湖南工程学院课程设计
三.主要功能实现
1.重定位入口地址
;重定位中断程序的入口地址
lea dx,showtime mov ax,seg showtime mov ds,ax mov ax,251ch int 21h
2.程序驻留并结束
;调用21号中断的31h程序结束并驻留功能
mov ax,3100h mov dx,proclen int 21h
3.显示系统时间
showtime proc
push ax push bx push ds push es mov ax,cs mov ds,ax mov ax,0b800h mov es,ax
mov ax,2c00h ;调用21h号中断的2ch功能
3
湖南工程学院课程设计
int 21h ;输出时钟 mov bl,':' mov bh,ch call adjust mov es:[120],al mov es:[120+2],ah mov es:[120+4],bl
;输出分钟 mov bh,cl call adjust mov es:[120+6],al mov es:[120+8],ah
;输出秒钟 mov bh,dh call adjust mov es:[120+12],al mov es:[120+14],ah mov es:[120+16],bl
;输出毫秒 mov bh,dl call adjust mov es:[120+18],al mov es:[120+20],ah pop es pop ds pop bx pop ax iret
4
湖南工程学院课程设计
showtime end
4.显示系统时间的流程图
流程图如下:
开始 输出时钟 输出分钟 输出秒钟 输出毫秒 结束 图3.1 显示系统时间流程图
5