📄 time.asm
字号:
assume cs:code
code segment
start:
;清屏
mov ah,6 ;
mov al,0 ;
mov ch,0
mov cl,0 ;
mov dh,24
mov dl,79
mov bh,7
int 10h
l:
;年
mov al,9
mov si,0
call s
mov byte ptr es:[160*12+2*40+4],'/'
;月
mov al,8
mov si,6
call s
mov byte ptr es:[160*12+2*40+10],'/'
;日
mov al,7
mov si,12
call s
mov byte ptr es:[160*12+2*40+16],' '
;取时数并送入显存
mov al,4
mov si,18
call s
mov byte ptr es:[160*12+2*40+22],':'
;取分数并送入显存
mov al,2
mov si,24
call s
mov byte ptr es:[160*12+2*40+28],':'
;取秒数并送入显存
mov al,0
mov si,30
call s
jmp l
mov ax,4c00h
int 21h
;*******************子程序******************
;名称:s
;作用:取出BCD码并送入显存
;入参:al为单元数,si为显存偏移地址变址
;*******************************************
s: push ax
push bx
push si
out 70h,al
in al,71h
mov cl,4
mov ah,al
shr ah,cl
and al,00001111b
add al,30h
add ah,30h
mov bx,0b800h
mov es,bx
mov bx,160*12+2*40
mov es:[bx+si],ah
mov es:[bx+si+2],al
pop si
pop bx
pop ax
ret
code ends
end start
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -