在程序运行期间 修改了int9的入口地址 程序结束 恢复int9的入口地址
程序的执行从结果上看是正常的 结束后,键盘就锁住了。
以下是代码。
assume cs:codesg,ds:datasg,ss:stacksg
stacksg segment
db 128 dup(0)
stacksg ends
datasg segment
int9ip dw 0
int9cs dw 0
datasg ends
codesg segment
start:
mov ax,datasg
mov ds,ax
mov ax,0
mov es,ax
mov si,0
mov dx,es:[9*4]
mov word ptr int9ip,dx
mov dx,es:[9*4+2]
mov word ptr int9cs,dx ;保存当前的int 9的中断向量
;
mov word ptr es:[9*4],offset int99
mov word ptr es:[9*4+2],cs ;设置int 9中断向量
mov ax,0b800h
mov es,ax
mov di,160*12+2*40 ;第13行中间开始
mov cx,10
;
mov al,'a'
mov ah,7ch ;颜色
mov es:[di+1],ah
;
s:
mov es:[di],al
call time
inc al
loop s ;循环显示
mov dx,int9ip
mov word ptr es:[9*4],dx
mov dx,int9cs
mov word ptr es:[9*4+2],dx ;恢复int 9中断向量
mov ax,4c00h
int 21h
;----------------------------------
int99: ;到这里 CS IP 标志寄存器 已经由硬件完成入栈
mov ah,0fch
mov byte ptr es:[di+1],ah ;恢复向量表
iret
;----------------------------------
;用于延时
time proc
push ax
push bx
mov bx,1000h
mov ax,0
s1:
sub ax,1
sbb bx,0
cmp ax,0
jne s1
cmp bx,0
jne s1
pop bx
pop ax
ret
time endp
codesg ends
end start
继续研究。。。
程序的执行从结果上看是正常的 结束后,键盘就锁住了。
以下是代码。
assume cs:codesg,ds:datasg,ss:stacksg
stacksg segment
db 128 dup(0)
stacksg ends
datasg segment
int9ip dw 0
int9cs dw 0
datasg ends
codesg segment
start:
mov ax,datasg
mov ds,ax
mov ax,0
mov es,ax
mov si,0
mov dx,es:[9*4]
mov word ptr int9ip,dx
mov dx,es:[9*4+2]
mov word ptr int9cs,dx ;保存当前的int 9的中断向量
;
mov word ptr es:[9*4],offset int99
mov word ptr es:[9*4+2],cs ;设置int 9中断向量
mov ax,0b800h
mov es,ax
mov di,160*12+2*40 ;第13行中间开始
mov cx,10
;
mov al,'a'
mov ah,7ch ;颜色
mov es:[di+1],ah
;
s:
mov es:[di],al
call time
inc al
loop s ;循环显示
mov dx,int9ip
mov word ptr es:[9*4],dx
mov dx,int9cs
mov word ptr es:[9*4+2],dx ;恢复int 9中断向量
mov ax,4c00h
int 21h
;----------------------------------
int99: ;到这里 CS IP 标志寄存器 已经由硬件完成入栈
mov ah,0fch
mov byte ptr es:[di+1],ah ;恢复向量表
iret
;----------------------------------
;用于延时
time proc
push ax
push bx
mov bx,1000h
mov ax,0
s1:
sub ax,1
sbb bx,0
cmp ax,0
jne s1
cmp bx,0
jne s1
pop bx
pop ax
ret
time endp
codesg ends
end start
继续研究。。。
