王爽<汇编语言> 第十五章 实验十五
assume cs:codesg
stacksg segment
db 128 dup(0)
stacksg ends
codesg segment
int9:push ax
push es
mov ax,0
mov es,ax
in al,60h;获取键盘扫码
pushf
;这里不用再置0 TF和IF位,因为系统调用我们的9号中断时已经做了...
call dword ptr es:[200h];调用原来的int9
cmp al,9eh;只有断码的A才刷屏
jne int9r
mov bx,0b800h
mov es,bx
mov bx,0
int9s:mov byte ptr es:[bx],'A'
add bx,2
cmp bx,2000
je int9r
jmp int9s
int9r:pop es
pop ax
iret
int9e:nop
start:mov ax,stacksg
mov ss,ax
mov sp,1ch
push cs
pop ds
mov ax,0
mov es,ax
mov si,offset int9
mov di,204h
mov cx,offset int9e-offset int9
cld
rep movsb
mov ax,0
mov es,ax
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],0h
sti;恢复中断
mov ax,4c00h
int 21h
codesg ends
end start
- 上一篇:没有了
- 下一篇:王爽<汇编语言> 第九章 实验九