免费注册 查看新帖 |

Chinaunix

  平台 论坛 博客 文库
最近访问板块 发新帖
查看: 2918 | 回复: 4
打印 上一主题 下一主题

程序中获取RTC [复制链接]

论坛徽章:
0
跳转到指定楼层
1 [收藏(0)] [报告]
发表于 2008-07-08 22:56 |只看该作者 |倒序浏览
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 编辑 ]

评分

参与人数 1可用积分 +3 收起 理由
prolj + 3 对OS Write有用

查看全部评分

论坛徽章:
0
2 [报告]
发表于 2008-07-08 23:03 |只看该作者
写OS的人关心这些,不错

论坛徽章:
0
3 [报告]
发表于 2008-07-11 11:39 |只看该作者
只有real mode下才能调用bios中断吗? 还是ring0就可以?

论坛徽章:
3
2015年迎新春徽章
日期:2015-03-04 09:56:11数据库技术版块每日发帖之星
日期:2016-08-03 06:20:00数据库技术版块每日发帖之星
日期:2016-08-04 06:20:00
4 [报告]
发表于 2008-07-11 11:48 |只看该作者

回复 #3 albcamus 的帖子

ring0可以

论坛徽章:
0
5 [报告]
发表于 2008-07-11 14:05 |只看该作者

回复 #4 cjaizss 的帖子

thanks
您需要登录后才可以回帖 登录 | 注册

本版积分规则 发表回复

  

北京盛拓优讯信息技术有限公司. 版权所有 京ICP备16024965号-6 北京市公安局海淀分局网监中心备案编号:11010802020122 niuxiaotong@pcpop.com 17352615567
未成年举报专区
中国互联网协会会员  联系我们:huangweiwei@itpub.net
感谢所有关心和支持过ChinaUnix的朋友们 转载本站内容请注明原作者名及出处

清除 Cookies - ChinaUnix - Archiver - WAP - TOP