【发布时间】:2017-02-12 13:47:49
【问题描述】:
在this website中,我发现CMOS RAM中的年份只存储在一个字节中。
已知一个字节只能保存0到255,所以我写了这段代码来获取09H存储的内容:
assume cs:code,ss:stack
stack segment
db 64 dup (0)
stack ends
code segment
start:
mov ax,stack
mov ss,ax
mov sp,64
mov al,09H
out 70H,al
in al,71H
mov ah,4CH
int 21H
code ends
end start
我从端口 71H 得到一个返回值 17H,那么这是否意味着 CMOS RAM 存储年份为1994 + offset value?
如果是这样,数字 1994 是什么意思?未来CMOS RAM如何存储超过2249(1994+255)的年份?
【问题讨论】:
-
数据以 BCD 编码,而不是二进制编码。 32 年前(几乎没有)有意义的事情。高半字节包含第一个十进制数字,低半字节包含第二个数字。范围是 [0..99]。是的,我们确实生活在 2017 年,所以你得到的是正确的。