主题:请教怎样使其停止?
有个计时程序,如何把它停止?因为它不断计时,我想按某键它停止,按退出键退出!
data segment
buffer db 10
db ?
db 10 dup(?)
data ends
stack segment stack
db 100 dup(?)
stack ends
code segment
assume cs:code,ds:data,es:data,ss:stack
begin:
mov ax,data
mov ds,ax
mov ch,0
mov dh,0
mov dl,0
again: call delay
mov al,dl
add al,01h
daa
mov dl,al
cmp al,60h
jne dispy
mov dl,0
mov al,dh
add al,1
daa
mov dh,al
cmp al,60h
jne dispy
mov dh,0
mov al,ch
add al,1
daa
mov ch,al
cmp al,24h
jne dispy
mov ch,0
dispy: lea bx,buffer
mov al,0dh
mov [bx],al
inc bx
mov al,ch
call tran
inc bx
mov al,':'
mov [bx],al
inc bx
mov al,dh
call tran
inc bx
mov al,':'
mov [bx],al
inc bx
mov al,dl
call tran
inc bx
mov al,'$'
mov [bx],al
push bx
push cx
push dx
lea dx,buffer
mov ah,9
int 21h
pop dx
pop cx
pop bx
jmp again
tran proc
mov cl,al
shr al,1
shr al,1
shr al,1
shr al,1
or al,30h
mov [bx],al
inc bx
mov al,cl
and al,0fh
or al,30h
mov [bx],al
ret
tran endp
delay proc
push cx
push dx
mov dx,4999h
up: xor cx,cx
a: nop
loop a
dec dx
jnz up
pop dx
pop cx
ret
delay endp
code ends
end begin
data segment
buffer db 10
db ?
db 10 dup(?)
data ends
stack segment stack
db 100 dup(?)
stack ends
code segment
assume cs:code,ds:data,es:data,ss:stack
begin:
mov ax,data
mov ds,ax
mov ch,0
mov dh,0
mov dl,0
again: call delay
mov al,dl
add al,01h
daa
mov dl,al
cmp al,60h
jne dispy
mov dl,0
mov al,dh
add al,1
daa
mov dh,al
cmp al,60h
jne dispy
mov dh,0
mov al,ch
add al,1
daa
mov ch,al
cmp al,24h
jne dispy
mov ch,0
dispy: lea bx,buffer
mov al,0dh
mov [bx],al
inc bx
mov al,ch
call tran
inc bx
mov al,':'
mov [bx],al
inc bx
mov al,dh
call tran
inc bx
mov al,':'
mov [bx],al
inc bx
mov al,dl
call tran
inc bx
mov al,'$'
mov [bx],al
push bx
push cx
push dx
lea dx,buffer
mov ah,9
int 21h
pop dx
pop cx
pop bx
jmp again
tran proc
mov cl,al
shr al,1
shr al,1
shr al,1
shr al,1
or al,30h
mov [bx],al
inc bx
mov al,cl
and al,0fh
or al,30h
mov [bx],al
ret
tran endp
delay proc
push cx
push dx
mov dx,4999h
up: xor cx,cx
a: nop
loop a
dec dx
jnz up
pop dx
pop cx
ret
delay endp
code ends
end begin