小弟目前在学习8086的汇编语言,看到操作CMOS这一部分时,产生了一些疑问,还望各位达人帮忙解决一下。

问题1:CMOS的RAM中0-0dh存储了时间信息,时分秒等各个位置,分别对应一个字节,请问我用汇编语言改写这部分内容会导致下次启动时系统时间的改变吗?问题2:用BCD码... 问题1:CMOS的RAM中0-0dh存储了时间信息,时分秒等各个位置,分别对应一个字节,请问我用汇编语言改写这部分内容会导致下次启动时系统时间的改变吗?
问题2:用BCD码表示时分秒时,一个字节8位就够用了,但是年为什么也是一个字节?年可以是上千上万的毕竟。
展开
 我来答
纯种马
2011-08-21
知道答主
回答量:11
采纳率:0%
帮助的人:16.6万
展开全部
回答1,不会改变系统时间,你所做的更改都是在保护模式下的虚拟8086模式,也就是说你修改的CMOS都是模拟的,你修改的东西无法对真正CMOS产生影响。
回答2,年之所以是一个字节完全是那个时代的问题,那时候的程序员没有考虑到2000年以后的情况,所以还产生了千年虫问题。还有baitang36的回答是错误的,BCD码表示的最大年数是99,并非255.
以下是百度百科的解释
“千年虫”问题的根源始于60年代。当时计算机存储器的成本很高,如果用四位数字表示年份,就要多占用存储器空间,就会使成本增加,因此为了节省存储空间,计算机系统的编程人员采用两位数字表示年份。随着计算机技术的迅猛发展,虽然后来存储器的价格降低了, 但在计算机系统中使用两位数字来表示年份的做法却由于思维上的惯性势力而被沿袭下来, 年复一年,直到新世纪即将来临之际,大家才突然意识到用两位数字表示年份将无法正确辨识公元2000年及其以后的年份。
追问
请问现代的年在CMOS中如何存储才防止千年虫的问题呢?

参考资料: http://baike.baidu.com/view/677788.htm

已赞过 已踩过<
你对这个回答的评价是?
评论 收起
小谢
2025-08-18 广告
深圳市金创图电子设备有限公司,联系电话:18928465613。金创图是一家集研发、生产、营销、服务为一体的高新技术企业。致力于生产:管装烧录机,编带烧录机,托盘烧录机,通用型烧录机、自动一体化烧录机等;设备产品具有高速率、高刚性、高性能、... 点击进入详情页
本回答由小谢提供
wskjuf
2011-08-21 · TA获得超过1289个赞
知道大有可为答主
回答量:1731
采纳率:0%
帮助的人:1896万
展开全部
你最好反汇编bios中断来看一看,像定时器中断Int 8的代码就很短,看过后就可以解决你的问题。10年前电脑报网站上有篇文章叫《BIOS中断浅析》,如果你能找到的话,这些问题都解决了,还可以学到一些技巧。
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
baitang3671b
2011-08-20 · TA获得超过5040个赞
知道大有可为答主
回答量:4422
采纳率:31%
帮助的人:1186万
展开全部
1 会导致系统时间的改变
2 年只能表示某一段时间,一个字节最多0-255
当年的千年虫问题就是这个原因造成的
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
AJISky
2011-08-21 · TA获得超过1122个赞
知道小有建树答主
回答量:457
采纳率:100%
帮助的人:278万
展开全部
会改变啊,你可以试试啊,至于年设置是按照1980-2079年设置的,后两位一个字节就可以了!具体原因请查询。
追问
这个意思是说 设置为11就是2011设置为99就是1999呗?
追答
对啊,80-99指的是19XX。00-79指的是20XX
本回答被提问者采纳
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 更多回答(2)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式