欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页

汇编语言学习:实验十四

程序员文章站 2022-03-13 10:47:05
...

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

注意:    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

运行:

汇编语言学习:实验十四