代码解释如下:
;改变int9中断例程改变它的中断处理程序
assume cs:code
stack segment
db 128 dup(0)
stack ends
code segment
start: mov ax,stack
mov ss,ax
mov sp,128
call cpy_new_int9 ;复制自定义的int9程序
call save_int9 ;保存原有的int9程序的入口地址:cs:ip
call set_new_int9 ;设置中断向量表
loopInput: mov ax,100h
jmp loopInput
call set_old_int9 ;原来的int9的中断程序入口地址恢复
mov ax,4c00h
int 21h
;======================================================== ;恢复int9本来的中断向量表
set_old_int9: mov ax,0
mov es,ax
cli
mov word ptr es:[9*4],[200h]
mov word ptr es:[9*4+2],[202h]
sti
ret
;========================