code segment
assume cs:code
start:
mov ah,2ch ;2ch號功能調用,取系統時間:ch,cl,dh中分別存放時分秒
int 21h
call disptime;調用disptime子程序顯示時間
exit:
mov ax,4c00h ;結束程序,返回DOS
int 21h
disptime proc
mov al,ch ;小時的值賦給al
cbw ;al擴展成ax,用做除法的被除數
call bindec
mov dl,':' ;顯示":"
mov ah,02h
int 21h
mov al,cl ;分
cbw
call bindec
mov dl,':' ;顯示":"
mov ah,02h
int 21h
mov al,dh;秒
cbw
call bindec
ret
disptime endp
bindec proc
push ax ;保存寄存器的值(一定要的)
push cx
push dx
mov dx,0 ;被除數高16位置0
mov cx,10d ;除數為10d
div cx
mov bx,dx ;先保存余數
mov dl,al ;顯示商(即十進制二位數的十位)
add dl,30h ;轉換成Ascii碼
mov ah,02h ;2號功能調用,顯示字符(十位)
int 21h
mov dx,bx ;恢復余數的值(十進制二位數的個位)
add dl,30h ;轉換成ASCII碼
mov ah,02h ;2號功能調用,顯示字符(個位)
int 21h
pop dx ;恢復寄存器的值
pop cx
pop ax
ret ;子程序返回
bindec endp
code ends
end start