汇编语言(王爽)——实验十五 安装新的int9中断例程

it2024-08-23  73

1、题目

2、个人代码

assume cs:code stack segment db 128 dup (0) stack ends code segment start: ;设置栈顶ss:sp指向 mov ax,stack mov ss,ax mov sp,128 ;将原中断向量表中的9号中断处理程序地址存到0:[200]地址 mov ax,0 mov es,ax;es:di目标地址 mov di,200h mov ds,ax mov si,[9*4];ds:si源地址 mov cx,4 cld rep movsb ;将编写的新的int9中断处理程序放到0:[204]地址 mov ax,cs mov ds,ax mov si,offset int9 mov cx,offset int9end-offset int9 cld rep movsb ;更改中断向量表设置9号处理程序新的地址 cli mov word ptr es:[9*4],204h mov word ptr es:[9*4+2],0 sti mov ax,4c00h int 21h int9: push ax push es push cx push bx in al,60h pushf call dword ptr cs:[200h];调用原来的int9中断处理程序 cmp al,1eh+80h;松开按键产生的断码 jne int9ret mov ax,0b800h mov es,ax mov cx,2000 mov bx,0 ;松开A键全屏显示A s: mov byte ptr es:[bx],'A' add bx,2 loop s int9ret: pop bx pop cx pop es pop ax iret int9end: nop code ends end start

 

3、结果

 

最新回复(0)