文章目录
自定义中断,用中断来算算术
自定义79h号中断,在中断被调用时,可以将(ah)和(al)中的两个数按(bl)中提供的运算符(’+‘或’-’)计算,其结果由(ah)返回。编程序实现该中断并将其安装到0:200H。例如,(ah)=5,(al)=3,(bl)=’+‘时,(ah)=8;(ah)=5,(al)=3,(bl)=’-’ 时,(ah)=2。
定义并安装中断例程的代码为(加入足量注释):
assume cs:code, ss:stack
stack segment stack
db 16 dup(0)
stack ends
code segment
start:
;-----------------------------
; 1.安装中断例程
; 2.设置中断向量表
;-----------------------------
;将自定义的79h号中断的中断例程安装到 0:200
mov ax,cs
mov ds,ax
lea si,do79h
mov ax,0
mov es,ax
mov di,200h
mov cx,offset do79h_end - offset do79h
cld
rep movsb ;指令movsb 源ds:si, 目标es:di
;设置79h号中断的中断向量表
mov word ptr es:[79h*4],200h
mov word ptr es:[79h*4+2],0
mov ax,4c00h
int 21h
;---------------------------