想问一下,我们知道汇编中断是在int n开始执行,那么在STI这条语句之后会执行吗?
比如:
例:编写一个中断处理程序,要求在主程序运行期间,
每隔 10 秒响铃一次,并显示 ‘bell’
.model small
.stack
.data
cnt dw 1
mes db 'bell',0ah,0dh,'$'
.code
main proc far
start:
mov ax, @data
mov ds, ax
mov al, 1ch
mov ah, 35h
int 21h
push es
push bx
push ds
mov dx, offset ring
mov ax, seg ring
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, 30000
dly: mov si, 60000
dly1:
dec si
jnz dly1
dec di
jnz dly ;主程序
pop dx
pop ds
mov al, 1ch
mov ah, 25h
int 21h
mov ax, 4c00h
int 21h
main endp
ring proc near
…… ;保存寄存器
mov ax, @data
mov ds, ax
sti ;开中断
dec cnt
jnz exit
mov dx, offset mes
mov ah, 09
int 21h
call sound
mov cnt,182
exit: cli ;关中断
…… ;恢复寄存器
iret
ring endp
end start