汇编语言笔记实验15安装新的int9中断例程

汇编语言笔记实验15安装新的int9中断例程

0x00 任务一

QQ截图20200608194721

​ 思路,即修改int9中断处理程序,如果是松开a键,就让全屏a

assume cs:code
stack segment
		db 128 dup (0)
stack ends
code segment
start:	mov ax,cs
		mov ds,ax
		mov si,offset do9
		mov ax,0
		mov es,ax
		mov di,204h
		mov cx,offset do9e-offset do9
		cld
		rep movsb
		mov ax,es:[9*4]
		mov es:[200h],ax
		mov ax,es:[9*4+2]
		mov es:[202h],ax
		cli
		mov word ptr es:[9*4],204h
		mov word ptr es:[9*4+2],0
		sti
		mov ax,4c00h
		int 21h
		
do9:	push ax
		push cx
		push es
		push si
		mov ax,0
		mov es,ax
		in al,60h
		pushf
		call dword ptr es:[200h]
		cmp al,9eh
		jne fin
		mov si,0
		mov ax,0b800h
		mov es,ax
		mov cx,2000
s:		mov byte ptr es:[si],'a'
		add si,2
		loop s
fin:	pop si
		pop es
		pop cx
		pop ax
		iret
do9e:	nop
code ends
end start

​ 上述代码运行正确

QQ截图20200608200014