《汇编语言》读书笔记(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
代码如下:
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
相关文章推荐
- 王爽《汇编语言》实验12 编写0号中断的处理程序
- 王爽《汇编语言》第十二章实验——0号中断处理程序
- 王爽《汇编语言》实验12:编写0号中断的处理程序 解答
- 王爽《汇编语言》实验12——编写0号中断的处理程序
- 汇编试验十二:编写0号中断的处理程序
- 王爽 汇编 实验12 编写0号中断的处理程序
- 第十二章实验任务:编写0号中断的处理程序
- 汇编语言:0号中断处理程序
- 编写0号中断的处理程序
- 王爽 汇编语言 第三版 实验12 编写0号中断的处理程序
- 汇编语言 实验12 编写0号中断的处理程序
- 【实战编程】编写0号中断处理程序
- 编写0号中断的处理程序
- 编写0号中断的处理程序
- 王爽汇编 实验12编写0号中断处理程序
- [Hb-XII] 编写0号中断的处理程序
- 实验十二_编写0号中断处理程序
- 编写0号中断处理程序,使得在出发溢出发生时,在屏幕中间显示字符串,然后返回到DOS
- 改写0号中断处理程序
- 《Linux内核设计与实现》读书笔记(4)--- 中断和中断处理程序