汇编:实验14:从CMOS读取并显示时间

这段代码演示了如何从CMOS RAM中读取当前的日期和时间,并将其转换为字符形式显示在屏幕上。程序通过端口70h和71h与CMOS进行通信,将获取的数据格式化为'yy/mm/ddhh:mm:ss'的格式。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

从 CMOS RAM 读取时间并显示到屏幕。

代码:

; 显示CMOS中当前日期时间
assume cs:code
code segment
src:    
    db 9,8,7,4,2,0 ; 年月日时分秒的地址
dst:    
    db 'yy/mm/dd hh:mm:ss',0

start:
    mov ax,cs
    mov ds,ax
    mov si,offset src
    mov di,offset dst
    mov cx,6
s:
    mov dx,cx
    mov al,[si]
    out 70h,al ; 70h为地址端口
    in al,71h ; 71h为数据端口
    mov ah,al
    mov cl,4
    shr ah,cl ; 右移4位,ah为十进制的十位数
    and al,00001111b ; al为十进制的个位数
    add ah,30h
    add al,30h ; 数值转字符形式
    xor ah,al
    xor al,ah
    xor ah,al ; 交换ah al的值
    mov [di],ax
    add di,3
    inc si
    mov cx,dx
    loop s

    mov ax,0b800h
    mov es,ax
    mov di,0
    mov si,offset dst
s1:
    mov ch,0
    mov cl,[si]
    jcxz ok
    mov ch,2 ; 绿色字
    mov es:[di],cx
    inc si
    add di,2
    jmp s1
ok:
    mov ax,4c00h
    int 21h
code ends
end start

结果:

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值