您的位置:首页 > 其它

实验12 编写0号中断的处理程序

2017-09-17 08:52 351 查看
1,在地址0:200h处安装中断代码,安装程序如下:

assume cs:codesg

codesg segment
start: mov ax, cs
mov ds, ax
mov si, offset do0 ;设置ds:si指向源地址
mov ax, 0
mov es, ax
mov di, 200h ;设置es:si指目的地址

mov cx, offset do0end - offset do0 ;设置cx传输长度
cld
rep movsb

mov ax, 0 ;设置中断向量表
mov es, ax
mov word ptr es:[0*4], 200h
mov word ptr es:[0*4+2], 0

mov ax, 4c00h
int 21h

;do------------------------
do0: jmp short do0start
db "divide error!"
do0start:
mov ax, cs
mov ds, ax
mov si, 202h ;设置指向字符串

mov ax, 0b800h
mov es, ax
mov di, 12*160+36*2

mov cx, 13
mov bh, 2
s: mov bl, ds:[si]
mov es:[di], bl
mov es:[di+1], bh
inc si
add di, 2
loop s

mov ax, 4c00h
int 21h
do0end: nop

codesg ends
end start


2,int 0中断应用程序
assume cs:code

code segment
start:
int 0
mov ax, 4c00h
int 21h

code ends
end start


3,先执行第一个程序,完成中断程序安装,然后运行第二个除法溢出应用程序,程序运行结果如下:



4,实验体会

边实践边思考边总结,三者缺一不可,首先不是想明白了再去做,那样的话永远也想不明白!其次,实践了,思考了,但是没有总结出结果,下一次还要从头做起,保存好当前思考的环境,以备下次快速切换回来进行更深入的思考,这样才更有效率。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: