问一下关于定时中断的问题?
我的程序如下:
data segment
old_cs dw ?
old_ip dw ?
num db 0
buffer db "Got it!",0dh,0ah,'$'
data ends
code segment
assume cs:code,ds:data
start: mov ax,data
mov ds,ax
;save 1ch interrupt vector.
mov al,1ch
mov ah,35h
int 21h
mov ax,es
mov old_cs,ax
mov old_ip,bx
;end save.
;modefy 1ch interrupt vector.
cli
push ds
mov dx,offset timeints
mov ax,seg timeints
mov ds,ax
mov al,1ch
mov ah,25h
int 21h
pop ds
;end modefy.
sti
mov num,0
mainp: cmp num,10h
jnz mainp
;restore 1ch interrupt vector.
push ds
mov dx,old_ip
mov ax,old_cs
mov ds,ax
mov al,1ch
mov ah,25h
int 21h
pop ds
mov ah,4ch
int 21h
timeints proc
push ax
push dx
sti
inc num
lea dx,buffer
mov ah,09h
int 21h
pop dx
pop ax
iret
timeints endp
code ends
end start
运行结果:乱码,而且停不了,除非Ctrl+C.
搞了好久不明白。

