嘿嘿^终于把这个问题跟基本解决了,但还有很奇怪的是为什么我在自己的机子上只能有3秒,在别的机上有5秒,而我想实现的是一直工作,请高手指点下!谢谢!
data    segment
    count    dw    1    ;ms计数器
    mess1    db    'The current time is:',13,10,'$'
data    ends
;********************************************************************
sta    segment    stack
    dw    200 dup(?)
sta    ends
;********************************************************************
code    segment
    assume    cs:code,ds:data
main    proc    far
start:
    push    ds
    sub    ax,ax
    push    ax
    
    mov    ax,data
    mov    ds,ax
    
    mov    ax,sta
    mov    ss,ax
    
    mov    al,1ch
    mov    ah,35h
    int    21h
    push    es
    push    bx
    push    ds
    
    mov    dx,offset  new1ch
    mov    ax,seg new1ch
    mov    ds,ax
    mov    al,1ch
    mov    ah,25h
    int    21h
    
    pop    ds
    in    al,21h
    and     al,11111110b
    out    21h,al
    sti
    
    mov    di,0ffffH
delay:
    mov    si,0ffffH
delay1:
    dec    si
    jnz    delay1
    dec    di
    jnz    delay
    
    pop    dx
    pop    ds
    mov    al,1ch
    mov    ah,25h
    int    21h
    ret

main    endp
;********************************************************************
new1ch    proc    near
    push    ds
    push    ax
    ;push    bx
    ;push    cx
    push    dx
    
    mov    ax,data
    mov    ds,ax
    sti
    
    dec    count
    jnz    EXIT

    lea    dx,mess1
    mov    ah,09h
    int    21h
    

    mov    ah,2ch
    int    21h
    call    DISP
    
    mov    count,18
EXIT:
    cli
    pop    dx
    ;pop    cx
    ;pop    bx
    pop    ax
    pop    ds
    iret
new1ch    endp
;********************************************************************
DISP    proc    near
    mov    al,ch         
    cbw             
    call    bintdec
    mov    dl,':'        
    mov    ah,02h
    int    21h
    mov    al,cl        
    cbw
    call    bintdec
    mov    dl,':'        
    mov    ah,02h
    int    21h
    mov    al,dh        
    cbw
    call    bintdec
    call    CF
    ret
DISP endp
;********************************************************************
bintdec     proc    near
    push ax        
    push cx
    push dx 

    mov dx,0    
    mov cx,10d    
    div cx
    mov bx,dx    
    mov dl,al    
    add dl,30h    
    mov ah,02h    
    int 21h
    mov dx,bx
    add dl,30h 
    mov ah,02h    
    int 21h

    pop dx 
    pop cx
    pop ax
    ret 
bintdec endp
;********************************************************************
CF    proc    near
    push    ax
    push    dx
    mov    dl,0dh
    mov    ah,02h
    int    21h
    mov    dl,0ah                      
    mov    ah,02h
    int    21h
    pop    dx
    pop    ax
    ret
CF    endp
;******************************************************************************
code    ends
    end    start