label_callsysint:
pop dx
pop cx
pop bx
pop ax
jmp cs:[oldintaddr]
oldintaddr dd ?
cycle dw 0
ascii db 0
main:
;获取INT 1CH中断过程的地址,bx中存放偏移地址,es中存放段地址
push cs
pop ds
mov ax,351ch
int 21h
mov word ptr oldintaddr,bx
mov word ptr oldintaddr+2,es
;将自己的中断过程的地址写入中断向量表
mov ax,251ch
mov dx,offset myint
int 21h
;退出程序,并把中断过程驻留在内存中
mov ax,3100h
mov dx,offset main
mov cl,4
shr dx,cl
inc dx
add dx,10h
int 21h
end main作者: gyy 时间: 2008-2-3 18:55
原本以为这个程序只能运行在纯DOS下,没想到在XP里也能运行。