;***************************************************************
;利用BIOS中断或DOS中断实现一个显示当前时间的程序
;author:野渡无人
;create date:2007-12-31
;***************************************************************
save_reg macro
push ax
push bx
push cx
push dx
push si
push di
endm
;***************************************************************
ret_reg macro
pop di
pop si
pop dx
pop cx
pop bx
pop ax
ret
endm
;***************************************************************
print macro x
mov ah,02
mov dl,x
int 21h
endm
;***************************************************************
;***************************************************************
data segment
colon db ':'
data ends
;***************************************************************
prog segment
assume cs:prog,ds:data
;---------------------------------------------------------------
main proc far
start:
push ds
sub ax,ax
push ax
mov ax,data
mov ds,ax
mov ah,2ch
int 21h
push dx
mov bl,ch
call print_time
print colon
mov bl,cl
call print_time
print colon
pop dx
mov bl,dh
call print_time
ret
main endp
;---------------------------------------------------------------
print_time proc near
save_reg
mov al,bl
mov ah,0
mov cx,10
div cl
mov bx,ax
add bl,30h
add bh,30h
print bl
print bh
ret_reg
print_time endp
;---------------------------------------------------------------
prog ends
;***************************************************************
end start