欢迎来到天天文库
浏览记录
ID:11757868
大小:38.00 KB
页数:2页
时间:2018-07-13
《bios中断时钟服务》由会员上传分享,免费在线阅读,更多相关内容在行业资料-天天文库。
1、BIOS中断——时钟服务(INT1AH)1、PC微机系统时钟原理:PC记录时间的方法有两种:第一,所有的PC机都有一个计时芯片,初始化后以每秒约18.2次发出脉冲。这些脉冲经过操作系统计算形成BIOS日时钟计数,保存在BIOS数据区(0040:006CH~0040:006FH)的两个变量timer__low和timer__high中。每次脉冲调用计时器中断(INT08H)。中断08H服务程序对这两个计时变量进行操作,即每次对低字time__low单元加1,并当该单元复位(计满65536次)时,向高字timer__high进1。因此,这两个
2、计时变量保持着日时钟的踪迹;其中,高字记录小时,低字记录分、秒。INT08H是个硬中断,只要硬件未被禁止,无论CPU在做什么,它都保持进行。第二种是使用实时时钟一种计算时、分和秒的时钟。PC的实时时钟由电池驱动,关机后它仍然正常运行。当PC启动后,DOS可从机器的实时时钟读取时间并把转换为BIOS日时钟读数。此后该值每秒自动增加18.2,当DOS需要了解时间时,它再把日历钟计数转换回到时/分/秒格式。PC微机通过每秒钟执行18.2次INT08H中断,来完成对BIOS日时钟计时;而读取或修改这个计数器的值则是由日时钟I/O中断INT1AH完
3、成。如果INT1AH中断修改了计数器值,则系统日时钟将按这个新值开始计时。此外,INT1AH还可完成读取、设置系统的实时钟以及设置报警时钟等功能。2、bios时钟是一个计数器,在地址40:6C-6F是一个long值。此值每秒钟递增18(完全在后台进行)。其意义为从今天0:00起逝去的秒数*18.2。bios时间功能号正时对这个值的运算,而DOS时钟又是通过调用bios的功能号完成的。 3、实时钟是一个硬件时钟,其计数器完全存在于CMOS中,也不产生中断。在每下起动,系统POST程序从CMOS中读取时钟并存于BOIS的40:6C-6F。然
4、后这个值将以每秒18.2的计数递增。 4、设置系统时间有三种方法: 1)通过DOS的功能调用INT 21H 的2AH、2BH、2CH、2DH设置DOS级的系统时间; 2)通过BIOS的日期时间服务中断INT 1AH设置BIOS级的系统时间; 3)通过70H、71H端口直接对COMS及实时时钟的时间进行修改; 5、BIOS中断——时钟服务(INT1AH)的相关功能(1)、功能00H功能描述:读取时钟“滴答”计数2入口参数:AH=00H出口参数:AL=00H——未过午夜,否则,表示已过午夜CX:DX=时钟“滴答”计数(2)、功能01
5、H功能描述:设置时钟“滴答”计数入口参数:AH=01H CX:DX=时钟“滴答”计数出口参数:无(3)、功能02H功能描述:读取时间入口参数:AH=02H出口参数:CH=BCD码格式的小时CL=BCD码格式的分钟DH=BCD码格式的秒DL=00H——标准时间,否则,夏令时CF=0——时钟在走,否则,时钟停止(4)、功能03H功能描述:设置时间入口参数:AH=03HCH=BCD码格式的小时CL=BCD码格式的分钟DH=BCD码格式的秒DL=00H——标准时间,否则,夏令时出口参数:无(5)功能号:04H功能:读取日期入口参数:AH=04H出
6、口参数:CH=BCD码格式的世纪 CL=BCD码格式的年 DH=BCD码格式的月 DL=BCD码格式的日 CF=0—时钟在走,否则,时钟停止(6)功能号:05H功能:设置日期入口参数:AH=05H CH=BCD码格式的世纪 CL=BCD码格式的年 DH=BCD码格式的月 DL=BCD码格式的日出口参数:无6、为了保证时间间隔准确,首先将时间计数值清0,然后读取时间计数器的当前值。计数器以计数频率18.2Hz进行计
7、数,1小时对应计数值为65520次,1分钟对应计数值为1092次,1秒对应计数值为18.2次(取18次)。即时间计数器每55ms自动加1,也即两个计数之间的时间间隔是55ms,则要计时5.5s(5500ms),需要计数到100。2
此文档下载收益归作者所有