📄 定时计数技术应用程序设计.txt
字号:
DATAS SEGMENT
count dw 1
min1 db 48
min2 db 48
sec1 db 48
sec2 db 48
DATAS ENDS
STACKS SEGMENT
STACKS ENDS
CODES SEGMENT
ASSUME CS:CODES,DS:DATAS,SS:STACKS
main proc far
start:
mov ax,DATAS
mov ds,ax
call showtime ;调用showtime子程序
jmp delay2 ;等待键盘的输入
begin:
mov al,1ch
mov ah,35h
int 21h
push es
push bx
push ds
mov dx,offset show ;回送变量的偏移地址值
mov ax,seg show
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,10000
delay:
mov si,10000 ;延时
delay1:
dec si
jnz delay1
dec di
jnz delay
pop dx
pop ds
mov al,1ch
mov ah,25h
int 21h
mov ah,0bh
int 21h
inc al
jnz begin
mov ah,0
int 16h ;从键盘读字符
cmp al,61h ;时间暂停
jz delay2
cmp al,20h ;运行退出
jnz begin
exit:
mov ax,4c00h
int 21h
delay2:
mov ah,07h ;键盘输入
int 21h
cmp al,20h
jnz begin
jmp exit
counttime proc near
push dx
mov dh,sec2
add dh,1
mov sec2,dh
cmp dh,58
jz zero2
jmp quit
zero2:
mov sec2,48
mov dh,sec1
add dh,1
mov sec1,dh
cmp dh,54
jz zero1
jmp quit
zero1:
mov sec1,48
mov dh,min2
add dh,1
mov min2,dh
cmp dh,58
jz zero0
jmp quit
zero0:
mov min2,48
mov dh,min1
add dh,1
mov min1,dh
cmp dh,54
jz zero
jmp quit
zero:
mov min1,48
quit:
pop dx
ret
counttime endp
showtime proc near
mov ah,02h ;mm:ss显示输出
mov bh,0
mov dh,12
mov dl,40
int 10h
mov ah,02h
mov dl,min1
int 21h
mov ah,02h
mov dl,min2
int 21h
mov ah,02h
mov dl,':'
int 21h
mov ah,02h
mov dl,sec1
int 21h
mov ah,02h
mov dl,sec2
int 21h
call counttime
ret
showtime endp
main endp
;-----------------------------------
show proc near
push ds
push ax
push cx
push dx
mov ax,DATAS
mov ds,ax
sti
dec count
jnz exit1
call showtime
wait1:
loop wait1
dec dx
mov count,18
exit1:
cli
pop dx
pop cx
pop ax
pop ds
iret
show endp
CODES ENDS
END START
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -