assume cs:code
code segment
start: mov ax,cs
mov ds,ax
mov si,offset newInt0
mov ax,0
mov es,ax
mov di,200h
mov cx,offset int0ending-offset newInt0
rep movsb
mov es:[9*4],200h
mov es:[9*4+2],0 ------->运行到这里的时候的时CS:IP报错
int 9
mov ax,4c00h
int 21h
newInt0: push ax
push es
push bp
OriginalINTAddress: db 0,0,0,0
mov si,offset OriginalINTAddress
mov ax,0
mov es,ax
push es:[9*4]
pop cs:[si]
push es:[9*4+2]
pop cs:[si+2]
start0: pushf
call dword ptr cs:[si]
in al,60h
cmp al,1
jz buffer
pop bp
pop es
pop ax
iret
buffer: mov ax,0b800h
mov es,ax
mov bp,178*21
mov es:[bp],'!'
pop bp
pop es
pop ax
iret
int0ending:nop
code ends
end start |