自定义中断的算术问题
(1)自定义79h号中断,在中断被调用时,可以将(ah)和(al)中的两个数按(bl)中提供的运算符(’+‘或’-’)计算,其结果由(ah)返回。编程序实现该中断并将其安装到0:200H。例如,(ah)=5,(al)=3,(bl)=’+‘时,(ah)=8;(ah)=5,(al)=3,(bl)=’-’ 时,(ah)=2。
定义并安装中断例程的代码为(加入足量注释):
// 任务:自定义79h号中断,在中断被调用时,可以将(ah)和(al)中的两个数按(bl)中提供的运算符('+'或'-')计算,其结果由(ah)返回
assume cs:code
code segment
start:
;将自定义的79h号中断的中断例程安装到0:200
mov ax,cs
mov ds,ax
mov ax,0
mov es,ax
lea si,do79h ;原变址寄存器取得偏移地址
;可用mov si,offset do79h代替
mov di,200h ;目的地址0:200
mov cx,offset do79hend - offset do79h
cld ;设置传输方向为正
rep movsb
;设置79h号中断的中断向量表
;79号表项的地址为0:79h*4
mov word ptr es:[