任务一:
include io.inc
.model small
.stack
.data
intmsg byte 'TPCA Interrupt No.3!',13,10,0
counter byte 0
.code
start:
mov ax,@data
mov ds,ax ;设置数据段
mov ax,350bh
int 21h;调用21中断35号功能,获得0b号中断向量表项
push es
push bx
cli
push ds
mov ax,seg new0bh
mov ds,ax
mov dx,offset new0bh
mov ax,250bh
int 21h;调用21中断25号功能,修改0b号中断向量表项
pop ds
in al,21h
push ax
and al,0f7h
out 21h,al
mov counter,0
sti
start1:
cmp counter,5
jb start1
cli
pop ax
out 21h,al
pop dx
pop ds
mov ax,250bh
int 21h;调用21中断35号功能,恢复0b号中断向量表项
sti
.exit 0;以上是主程序
new0bh proc;新的0b中断服务
sti;开中断
push ax
push si
push ds
mov ax,@data
mov ds,ax;设置数据段
inc counter
mov si,offset intmsg
call dpstri;调用子程序打印字符串
mov al,20h
out 20h,al;EOI
pop ds
pop si
pop ax
iret;中断返回
new0bh