1,在地址0:200h处安装中断代码,安装程序如下:
assume cs:codesgcodesg segment
start: mov ax, csmov ds, axmov si, offset do0 ;设置ds:si指向源地址mov ax, 0mov es, ax mov di, 200h ;设置es:si指目的地址mov cx, offset do0end - offset do0 ;设置cx传输长度cldrep movsbmov ax, 0 ;设置中断向量表mov es, axmov word ptr es:[0*4], 200hmov word ptr es:[0*4+2], 0mov ax, 4c00hint 21h;do------------------------
do0: jmp short do0startdb "divide error!"
do0start:mov ax, csmov ds, axmov si, 202h ;设置指向字符串mov ax, 0b800hmov es, axmov di, 12*160+36*2mov cx, 13mov bh, 2
s: mov bl, ds:[si]mov es:[di], bl mov es:[di+1], bhinc siadd di, 2loop smov ax, 4c00hint 21h
do0end: nopcodesg ends
end start
2,int 0中断应用程序
assume cs:codecode segment
start:int 0mov ax, 4c00hint 21hcode ends
end start
3,先执行第一个程序,完成中断程序安装,然后运行第二个除法溢出应用程序,程序运行结果如下:
4,实验体会
边实践边思考边总结,三者缺一不可,首先不是想明白了再去做,那样的话永远也想不明白!其次,实践了,思考了,但是没有总结出结果,下一次还要从头做起,保存好当前思考的环境,以备下次快速切换回来进行更深入的思考,这样才更有效率。