王爽.汇编.第三版.实验14.答案

; 显示cmos time

assume  cs:code

data segment
    db 9,8,7,4,2,0  ; 端口中时间的字节偏移
    db '// :: ' ; 间隔符
data ends

code segment
start:

;此处是为了一直显示时间,此程序是不能退出的!!!   
alwaysshow: 
    ; 写入的位置
    mov ax, 0b800h
    mov es, ax
    mov di, 12

    ; cmos偏移
    mov ax, data
    mov ds, ax
    mov si, 0

    mov cx, 6
looptime:
    push cx

    ;偏移
    mov al, byte ptr ds:[si]

    out 70h, al
    in al, 71h

    ;十位的计算
    mov bh, al
    and bh, 11110000b
    mov cl, 4
    shr bh, cl

    add bh, 30h
    mov byte ptr es:[di], bh
    mov byte ptr es:[di+1], 00000010b

    ;个位的计算
    mov bl, al
    and bl, 00001111b
    add bl, 30h
    mov byte ptr es:[di+2], bl
    mov byte ptr es:[di+3], 00000010b

    ;显示分隔符
    mov al, byte ptr ds:[si+6]
    mov byte ptr es:[di+4], al
    mov byte ptr es:[di+5], 00000010b

    add di, 6
    inc si
    pop cx
    loop looptime

    ; 一直显示时间
    jmp short alwaysshow

    mov ax, 4c00h
    int 21h
code ends

end start
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值