改写0号中断处理程序
2009-10-23 14:24
274 查看
;重写0号中断处理程序
assume cs:code,ss:stack
stack segment
db 256 dup (0)
top label word
stack ends
code segment
start:
;设置stack内存空间和ss,sp之间的联系
mov ax,stack
mov ss,ax
mov sp,offset top
;将0号中断处理程序复制到内存0:200处
;因为内存0:200处是安全的
mov ax,cs
mov ds,ax
mov si,offset divdw
mov ax,0
mov es,ax
mov di,200H
mov cx,offset divdwend - offset divdw
rep movsb
;安装中断向量
mov ax,0
mov es,ax
mov word ptr es:[4*0],200H ;安装偏移地址
mov word ptr es:[4*0+2],0 ;安装段地址
;调用中断处理程序
int 0H
mov ax,4c00H
int 21H
;0号中断处理程序,显示over flow!
divdw:
jmp short s
str db 'over flow!','$'
s:
mov ax,0
mov ds,ax
mov dx,0202H ;因为中断处理程序被复制到内存0:200处,jmp short s占两个字节,所以字符串str的偏移地址为0202H
;显示'over flow!'
mov ah,09H
int 21H
mov ah,0H
int 16H
iret
divdwend:
nop
code ends
end start
assume cs:code,ss:stack
stack segment
db 256 dup (0)
top label word
stack ends
code segment
start:
;设置stack内存空间和ss,sp之间的联系
mov ax,stack
mov ss,ax
mov sp,offset top
;将0号中断处理程序复制到内存0:200处
;因为内存0:200处是安全的
mov ax,cs
mov ds,ax
mov si,offset divdw
mov ax,0
mov es,ax
mov di,200H
mov cx,offset divdwend - offset divdw
rep movsb
;安装中断向量
mov ax,0
mov es,ax
mov word ptr es:[4*0],200H ;安装偏移地址
mov word ptr es:[4*0+2],0 ;安装段地址
;调用中断处理程序
int 0H
mov ax,4c00H
int 21H
;0号中断处理程序,显示over flow!
divdw:
jmp short s
str db 'over flow!','$'
s:
mov ax,0
mov ds,ax
mov dx,0202H ;因为中断处理程序被复制到内存0:200处,jmp short s占两个字节,所以字符串str的偏移地址为0202H
;显示'over flow!'
mov ah,09H
int 21H
mov ah,0H
int 16H
iret
divdwend:
nop
code ends
end start
相关文章推荐
- 编写0号中断的处理程序
- 实验十二_编写0号中断处理程序
- 王爽《汇编语言》实验12 编写0号中断的处理程序
- 王爽《汇编语言》实验12——编写0号中断的处理程序
- 王爽 汇编 实验12 编写0号中断的处理程序
- [Hb-XII] 编写0号中断的处理程序
- 王爽《汇编语言》实验12:编写0号中断的处理程序 解答
- 实验12 编写0号中断的处理程序
- 王爽《汇编语言》第十二章实验——0号中断处理程序
- 编写0号中断处理程序,使得在出发溢出发生时,在屏幕中间显示字符串,然后返回到DOS
- 汇编试验十二:编写0号中断的处理程序
- 编写0号中断的处理程序
- 【实战编程】编写0号中断处理程序
- 王爽 汇编语言 第三版 实验12 编写0号中断的处理程序
- 汇编语言 实验12 编写0号中断的处理程序
- 8086汇编0号中断处理程序
- 第十二章实验任务:编写0号中断的处理程序
- 编写0号中断的处理程序
- 王爽汇编 实验12编写0号中断处理程序
- 实验十二_编写0号中断处理程序