请教高手指点
以下是一个小程序,运用1CH的中断每18次进行计算,进行模拟 电子计时钟.
但是不能问题在哪里.希望高手能够帮我修正一下,感激不尽.
code segment
assume ds:code,cs:code,ss:code,es:code
timer db 18
hour dw 0
minute dw 0
sec dw 0
num db 10
temp db "00:00:00"
main proc far
org 100h
start:
mov dx,offset n1c
mov ax,seg n1c
mov ds,ax
mov ax,251ch
int 21h
mov ax,offset start
add ax,104h
mov dx,ax
int 27h
n1c:
push ax
push dx
push ds
push cs
push di
pop ds
dec timer
jz time
jmp exit
time:
mov timer,18
inc sec
cmp sec,60
jnz disp
mov sec,0
inc minute
cmp minute,60
jnz disp
mov minute,0
inc hour
cmp hour,24
jnz disp
mov hour,0
disp:
mov di,0
mov ax,hour
call bcd
mov ax,minute
call bcd
mov ax,sec
call bcd
mov ax,cs
mov es,ax
mov dx,offset temp
mov ah,9
int 21h
jmp exit
exit:
pop di
pop ds
pop dx
pop ax
iret
bcd :
div num
mov temp[di],al
inc di
mov temp[di],ah
add di,2
main endp
code ends
end start