您的位置:首页 > 其它

《汇编语言》读书笔记(9)——0号中断的处理程序

2008-03-05 15:48 375 查看
照着王爽的书里面的代码依样画葫芦,写下除法溢出时的0号中断处理程序。

代码如下:


assume cs:code


code segment




start:


mov ax,cs


mov ds,ax


mov si,offset do0 ;设置ds:si指向源地址




mov ax,0


mov es,ax


mov di,200h ;设置es:di指向目的地址




mov cx,offset do0end-offset do0


cld ;设置传输方向为正


rep movsb




mov ax,0


mov es,ax


mov word ptr es:[0],200h ;设置中断向量的入口地址的偏移地址




mov word ptr es:[2],0 ;设置中断向量的入口地址的段地址




;测试程序


mov ax,1000h


mov bl,1


div bl




mov ax,4c00h


int 21h




do0: jmp short do0start


db "divide error!"




do0start:




mov ax,cs


mov ds,ax


mov si,202h ;设置ds:si指向字符串




mov ax,0b800h


mov es,ax


mov di,12*160+35*2 ;设置es:di指向显存空间的中间位置




mov cx,13d ;设置字符串长度




s: mov al,[si]


mov es:[di],al


inc si


add di,2 ;因为一个字符占两个字节的空间


loop s




mov ax, 4c00h


int 21h




do0end:nop




code ends




end start

内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: