龙盟编程博客 | 无障碍搜索 | 云盘搜索神器
快速搜索
主页 > 软件开发 > 汇编开发 >

王爽<汇编语言> 第十五章 实验十五

时间:2011-05-21 16:24来源:未知 作者:admin 点击:
分享到:
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号中断时已经做了... ca

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


精彩图集

赞助商链接