王爽汇编第四版 实验15 安装新的int9中断例程最佳答案

安装一个新的int9中断例程,功能:在dos下,按下“A“键后,除非不松开,如果松开,就显示满屏的"A",其他的键照常处理
提示,按下一个键时产生的扫描码称为通码,松开一个键产生的扫描码为断码。断码=通码+80h
在这里插入图片描述
代码如下:
assume cs:code
stack segment
db 128 dup(0)
stack ends
code segment
start:mov ax,stack
mov ss,ax
mov sp,128

push cs
pop ds

mov ax,0
mov es,ax

mov si,offset int9
mov di,204h
mov cx,offset int9end - offset int9
cld
rep movsb

push es:[9乘4]
pop es:[200h]
push es:[9乘4+2]
pop es:[202h]

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 bx
push cx
push es

in al,60h
pushf
call dword ptr cs:[200h]

cmp al,9eh
jne int9ret

mov ax,0b800h
mov es,ax
mov bx,0
mov cx,2000
s:mov byte ptr es:[bx],‘A’
add bx,2
loop s

int9ret:pop es
pop cx
pop bx
pop ax
iret

int9end:nop
code ends
end start
说明:书上这里的代码讲解很清晰,如有不懂可以私信我

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值