程序中获取RTC
X86 PC机中的硬件时钟RTC的信息保存在CMOS中, 有时程序需要不通过操作系统的API直接获取这个信息做为参考依据时,下列是直接获取时钟的方法:
CMOS RTC 的格式:
0-1, 秒 ,BCD码表示
2-3, 分,BCD码表示
4-5, 时,BCD码表示
6, 星期
7, 日,BCD码表示
8, 月,BCD码表示
9, 年,BCD码表示
对CMOS的访问需要用到两个基本IO端口地址:
0x70, RTC的地址寄存器, 用来out
0x71, RTC的数据寄存器, 用来in
;获取小时
mov al,04h
out 70h,al
in al,71h
;获取分钟
mov al,02h
out 70h,al
in al,71h
;获取秒
mov al,00h
out 70h,al
in al,71h
;获取年
mov al,09h
out 70h,al
in al,71h
;获取月份
mov al,08h
out 70h,al
in al,71h
;获取日
mov al,07h
out 70h,al
in al,71h
[ 本帖最后由 system888net 于 2008-7-8 22:57 编辑 ]
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(4)
写OS的人关心这些,不错
只有real mode下才能调用bios中断吗? 还是ring0就可以?
ring0可以
thanks