. : : Assembly Language : : .  |  首页  |  我提出的问题  |  我参与的问题  |  我的收藏  |  消息中心   |  游客  登录  | 
刷新 | 提问 | 未解决 | 已解决 | 精华区 | 搜索 |
  《汇编语言》论坛 ->端口
  管理员: assembly   [回复本贴] [收藏本贴] [管理本贴] [关闭窗口]
主题 : :  实验14可否显示完整的"2007/XX/XX”?  [待解决] 回复[ 14次 ]   点击[ 1148次 ]  
philmei
[帖 主]   [ 发表时间:2007-12-18 02:57 ]   [引用]   [回复]   [ top ] 
荣誉值:7
信誉值:10
注册日期:2007-11-26 03:32
是不是CMOS中只有07而没有20啊?
为什么windows操作系统里的时间可以编出2007?
难道windows中的2007只有07是真实的,而前面的20是强加上去的?
happy
[第1楼]   [ 回复时间:2007-12-18 15:43 ]   [引用]   [回复]   [ top ] 
荣誉值:32
信誉值:0
注册日期:2007-07-14 19:06
在32h端口。读取32H端口中的内容即可。
happy
[第2楼]   [ 回复时间:2007-12-18 15:44 ]   [引用]   [回复]   [ top ] 
荣誉值:32
信誉值:0
注册日期:2007-07-14 19:06
给你点儿资料参考一下吧。
偏移值(Offset)数据字段的意义描述(Description) 
00h         目前系统时间的“秒数”字段                                 
01h         预约警铃时间的“秒数”字段                                 
02h         目前系统时间的“分钟”字段                                 
03h         预约警铃时间的“分钟”字段                                 
04h         目前系统时间的“小时”字段                                 
05h         预约警铃时间的“小时”字段                                 
06h         星期几(星期一=01,星期二=02,依次类推)                 
07h         目前系统日期字段(0~31)                                  
08h         目前系统月份字段(0~12)                                  
09h         系统公元纪年的后两位(00~99;00=2000,01=2001,以此类推) 
0Ah         Status Register A(状态寄存器A) 
            Bit7指示位。0=目前可读取日期/时间,1=日期/时间更新中,稍后读取 
            Bit6-4计时频率除法器的填值,BIOS默认为010b,指定32.768KHz的计数频率 
            Bit3-0设置闹钟警示中断频率。BIOS默认为1024Hz,每次中断间隔为1/1024秒 

0Bh         Status Register B(状态寄存器B) 
            Bit7停止系统频率设定时间(0=直接设定时间,实时系统仍在计时状态)(1=停止CRT计时并设定时间) 
            Bit6周期性中断(0=Disable,1=Enable) 
            Bit5Alarm Interrupt(0=Disable,1=Enable) 
            Bit4Update-Ended Interrupt(0=Disable,1=Enable) 
            Bit3Square wave 方波设定(0=关掉方波,1=依Status Reg A 设定产生方波) 
            Bit2Date and Time Mode (0=使用BCD格式,为默认值。1=binary二进制值) 
            Bit124 或 12 小时计时制(0=指定12小时制,1=设定24小时制) 
            Bit0日光节约时间(0=Disable,1=Enable) 

0Ch         Status Register C(状态寄存器C),以下为只读状态 
            Bit7IRQ Flag (read-only) 
            Bit6Periodic Interrupt Flag (read-only) 
            Bit5Alarm Interrupt Flag (read-only) 
            Bit4Update Interrupt Flag (read-only) 
            Bit3-0保留未用,应该设为 0。 


0Dh         Status Register D(状态寄存器D) 
            Bit7CMOS RAM内容合法(0=CMOS电池储电量偏低,RAM内容正常)(0=CMOS电池储电量偏低,RAM内容异常) 
            Bit6-0保留未用,应该设为 0。 


0Eh         Diagnostic Status(诊断状态记录值) 
            Bit7CMOS/RTC芯片电源(0=电源正常,1=电源不正常) 
            Bit6CMOS RAM checksum加总检查值状态(0=检查值正常,1=检查值不符) 
            Bit5CMOS RAM组态(0=CMOS记录的组态与目前检测到的一致,1=组态不一致) 
            Bit4CMOS RAM 记录的内存状态(0=CMOS记录的内存跟目前检测到的一致,1=组态不一致) 
            Bit3硬盘C:起始状态(0=启动通过,准备boot。1=硬盘C:启动失败,无法boot) 
            Bit2时间状态指示(0=记录时间正常。1=记录时间异常) 
            Bit1-0保留未用,应该设为 0。 

0Fh         shutdown status byte 当机复位指示字节,指示值如下: 
            00h软件或其他不知名状态下的复位(reset) 
            01h正在真实/保护模式下检查内存时发生reset或者重新进入真实模式下做芯片组initialization时发生reset 
            02h在真实/保护模式下内存家传通过后的系统复位 
            03h在真实/保护模式下内存家传通失败的系统复位 
            04h通过INT 19h重新开机(boot) 
            05h清除键盘中断(产生一个EOI信号)并且跳到40h:0067h记录的跳跃位置 
            06h在保护模式下完成所有测试后的系统复位或在未产生EOI信号下跳到40h:0067h记录的跳跃位置 
            07h在保护模式下没有通过所有测试后的系统复位 
            08h由POST切到保护模式下进行内存家测时所使用 
            09h由BIOS INT 1h 的 AH=87h(区块移动功能)所使用 
            0Ah返回并跳跃到40h:0067h记录的程序进入点地址 
            0Bh以IRET方式回到40h:0067h记录的程序进入点 
            0Ch以RETF方式回到40h:0067h记录的程序进入点 
            0Dh-FFh系统电源刚打开时的复位 

10h         值软驱类型 
            00None 
            01360K 5.25 in. 
            021.2M 5.25 in. 
            30720K 3.5 in. 
            401.44M 3.5 in. 
            502.88M 3.5 in. 

11h~13h    可供其他用途 
14h         Bits7-6软盘驱动器数目(00=1 Drive,01=2 Drives) 
            Bits5-4Monitor Type 显示器型号(00=Monochrome,01=40*25 CGA,10=80*25 CGA,11=VGA/EGA) 
            Bit3显示功能位(0=不显示,1=启用并显示)) 
            Bit2键盘功能位(0=关掉键盘,1=启用键盘) 
            Bit1协处理器(x87)(0=不具备FPU,1=具备) 
            Bit0软盘机Drive(0Disabled,1=Enabled) 

15h         传统主存储器KB数,低字节 
16h         传统主存储器KB数,高字节C0280h=640K 
17h         与IBM PC 兼容的总内存KB数,低字节 
18h         与IBM PC 兼容的总内存KB数,高字节(最大值仅FFFF=65535=64M) 
19h~2Dh    可供其他用途 
2Eh         标准CMOS RAM 加总检查值,低字节 
2Fh         标准CMOS RAM 加总检查值,高字节 
30h         与IBM PC 兼容的扩展内存KB数,低字节 
31h         与IBM PC 兼容的扩展内存KB数,高字节 
32h         公元年号除以100后的BCD字段(20h=2000~2099,跟09h字段凑成整个公元纪年) 
33h~34h    保留未用 
35h         POST所检测到扩展内存K数,除以64KB后的数值(低字节) 
36h         POST所检测到扩展内存K数,除以64KB后的数值(高字节) 
37h~3Dh    可供其他用途 
3Eh         扩展CMOS加总检查值的(低字节,从34h计算到3Dh) 
3Fh         扩展CMOS加总检查值的(高字节,从34h计算到3Dh) 
40h~7Fh    供AMI BIOS动态配置使用
philmei
[第3楼]   [ 回复时间:2007-12-18 18:08 ]   [引用]   [回复]   [ top ] 
荣誉值:7
信誉值:10
注册日期:2007-11-26 03:32
这些都是CMOS RAM中的参数吧,谢谢了
jackcumt
[第4楼]   [ 回复时间:2008-01-01 13:18 ]   [引用]   [回复]   [ top ] 
荣誉值:0
信誉值:0
注册日期:2007-09-18 18:40
求教:端口32h中的数据,怎么显示不了呢?我是按照书上p259页的方法处理的呀?
happy
[第5楼]   [ 回复时间:2008-01-03 16:35 ]   [引用]   [回复]   [ top ] 
荣誉值:32
信誉值:0
注册日期:2007-07-14 19:06
回复4楼:
你的程序是不是哪儿有问题啊?把你的程序在检查一下。实在不行把你的程序贴上看看。
zhuzhu
[第6楼]   [ 回复时间:2008-01-03 18:11 ]   [引用]   [回复]   [ top ] 
荣誉值:50
信誉值:0
注册日期:2007-07-08 09:33
求教:端口32h中的数据,怎么显示不了呢?我是按照书上p259页的方法处理的呀?
------------------
回复:可以用debug跟踪下看能不能读到数据,然后在看能不能正确显示,没准是你读错地方了呢~
taotling
[第7楼]   [ 回复时间:2008-03-06 02:03 ]   [引用]   [回复]   [ top ] 
荣誉值:53
信誉值:0
注册日期:2008-02-09 02:55
COMS只有两个端口哦,70H和71H,上面的那么不叫端口号,而是单元号。
taotling
[第8楼]   [ 回复时间:2008-03-06 02:05 ]   [引用]   [回复]   [ top ] 
荣誉值:53
信誉值:0
注册日期:2008-02-09 02:55
CMOS只有两个端口哦,70H和71H,上面的那些不叫端口号,而是单元号。
lansekongjian414
[第9楼]   [ 回复时间:2008-04-06 13:57 ]   [引用]   [回复]   [ top ] 
荣誉值:0
信誉值:2
注册日期:2008-03-24 16:51
为什么我在星期天读出的是01(表星期的)
wdm
[第10楼]   [ 回复时间:2008-04-06 15:11 ]   [引用]   [回复]   [ top ] 
荣誉值:342
信誉值:0
注册日期:2007-12-06 10:21
星期天是一周的开始。
liova
[第11楼]   [ 回复时间:2008-10-16 14:45 ]   [引用]   [回复]   [ top ] 
荣誉值:0
信誉值:0
注册日期:2008-10-13 16:13
收藏ing~
谢谢happy给的单元号内容的意义

有点疑问
我的电脑里第14H单元里读出的数据是02H..也就是00000010,第3位和第4位都是零,这意味着键盘和显示未启用吗,可键盘仍然用的好好的呀
还有,第35H,36H里读的数据也是0,这个..
希望高手帮忙解答下
pamire
[第12楼]   [ 回复时间:2010-03-06 20:29 ]   [引用]   [回复]   [ top ] 
荣誉值:0
信誉值:0
注册日期:2008-09-21 10:17
下面程序仅供参数:

;向CMOS读取时间
assume cs:code 
data segment
 ts db "Now, The Date and Time is:", 0Dh, 0Ah, '$'
 unit db 50,9,'-',8,'-',7,' ',4,':',2,':',0
data ends
code segment 
 
start:
        mov ax, data
        mov ds,ax
        lea dx, ts
        mov ah, 9
        int 21h
        ;;show time
  mov ax, 0b800h
  mov es, ax
  mov bx, 3*160 

dynxs: mov di, 0
        mov si, offset unit
        mov cx, 12
s:
        push cx
        mov dx, 0000h;        //符号标记
        mov al, [si]
        cmp al, 10
        ja signal2        ;处理符号,非数字
signal0:        
        out 70h, al
        in al, 71h
        mov ah, al
        mov cl, 4
        shr ah, cl
        and al, 00001111b
        add ah, 30H
        add al, 30H
signal:        
        mov byte ptr es:[bx+di],  ah
        mov byte ptr es:[bx+di+1], 02
        cmp dx, 1000H
        je signal3         ;是符号则跳过
        mov byte ptr es:[bx+di+2], al
        mov byte ptr es:[bx+di+3], 02
        add di, 2
signal3:        
        add di, 2
        inc si
        pop cx
        loop s

        in al, 60h
        cmp al, 01
        je away
        jmp short dynxs
        
signal2:
        cmp al, 32H  
        je signal0     ;处理年问题
        mov dx, 1000H
        mov ah, al
        mov al, 0
        jmp short signal ;处理符号
        
away:      
  mov ax,4c00h
  int 21h 
code ends 
end start
one_cai
[第13楼]   [ 回复时间:2010-12-06 22:06 ]   [引用]   [回复]   [ top ] 
荣誉值:0
信誉值:0
注册日期:2010-12-05 15:22
mark 学习学习。。。
aibvfhpia
[第14楼]   [ 回复时间:2011-02-07 14:08 ]   [引用]   [回复]   [ top ] 
荣誉值:0
信誉值:0
注册日期:2010-12-20 11:44
mark.
需要登录后才能回帖 -->> 请单击此处登录
    Copyright © 2006-2024   ASMEDU.NET  All Rights Reserved