汇编语言学习:实验十四

    编程:以“年/月/日 时:分:秒”的格式,显示当前的日期、时间。

注意:    CMOS RAM中存储着系统的配置信息,除了保存时间信息的单元外,不要向其他单元中写入内容,否则将引起一些系统错误

上代码:

assume cs:code

code segment
unit:
        db 9,8,7,4,2,0
return:
        dw 0

start:
        mov ax,cs
        mov ds,ax
        mov si,offset unit
        mov di,0
        mov dl,47
        mov cx,6
s:
        mov al,ds:[si]
        call show_what
        inc si
        cmp si,3
        jz null
        cmp si,4
        jnb hour
        jmp year

null:
        mov dl,0
        jmp year

hour:
        mov dl,58
        cmp si,6
        je null

year:
        call show_how
        add di,6
        loop s
        mov ax,4c00h
        int 21h

show_what:
        push cx
        push ax
        push si

        out 70h,al
        in al,71h
        mov ah,al
        mov cl,4
        shr ah,cl
        and al,00001111b

        add ah,30h
        add al,30h
        mov si,offset return
        mov ds:[si],ax

        pop si
        pop ax
        pop cx
        ret

show_how:
        push bx
        push ax
        push dx
        push di
        push si

        mov bx,0b800h
        mov es,bx
        mov si,offset return
        mov ax,ds:[si]
        mov byte ptr es:[160*12+di],ah
        mov ah,2
		mov byte ptr es:[160*12+di+1],ah

        mov byte ptr es:[160*12+2+di],al
        mov byte ptr es:[160*12+2+di+1],ah

        mov byte ptr es:[160*12+4+di],dl
        mov byte ptr es:[160*12+4+di+1],ah

        pop si
        pop di
        pop dx
        pop ax
        pop bx
        ret
code ends
end start

运行:

汇编语言学习:实验十四_第1张图片

你可能感兴趣的:(汇编语言学习,汇编语言实验十四)