. : : Assembly Language : : .  |  首页  |  我提出的问题  |  我参与的问题  |  我的收藏  |  消息中心   |  游客  登录  | 
刷新 | 提问 | 未解决 | 已解决 | 精华区 | 搜索 |
  《汇编语言》论坛 ->内中断
  管理员: assembly   [回复本贴] [收藏本贴] [管理本贴] [关闭窗口]
主题 : :  实验12 设置中断向量的段地址和偏移地址那两句是不是可以去掉?  [待解决] 回复[ 5次 ]   点击[ 530次 ]  
xwill
[帖 主]   [ 发表时间:2011-08-24 11:08 ]   [引用]   [回复]   [ top ] 
荣誉值:0
信誉值:7
注册日期:2011-06-09 10:21
;d0 0号中断 整地是在发生溢出的时候选择一片空闲的内存空间然后放置可以显示溢出时候的那个overflow  将这段
;程序复制到es:[di] 处 
assume cs:code 

code segment
start:
mov ax,cs
mov ds,ax
mov si,offset do0

mov ax,0
mov es,ax
mov di,0200h;将ds:[si] 处的内容复制到es:[di] 处

mov cx,offset do0end- offset do0
cld 
rep movsb

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

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

;就是上面的这两句是什么作用,我现在只能把其他的看懂,加上这两句就不懂了但是我试过去掉之
;后还可以显示

mov ax,0f000h                     ;除法溢出
mov dx,22d
mov cx,10d
div cx        

                
mov ax,4c00h
int 21h

do0:jmp short dostart              ;下面是显示将溢出的的时候显示溢出
db "overflow!"

dostart:
mov ax,cs
mov ds,ax
mov si,202h

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

mov cx,9

s:mov al,[si]
mov es:[di],al
mov al,2
mov es:[di+1],al
inc si
add di,2
loop s

mov ax,4c00h
int 21h 

do0end:nop

code ends
end start
chinatree
[第1楼]   [ 回复时间:2011-08-24 12:22 ]   [引用]   [回复]   [ top ] 
荣誉值:118
信誉值:0
注册日期:2011-07-07 22:59
不能去掉,因为这两句是把你传送的代码的第一个字节的段地址和偏移地址送到中断向量表中,没有这两句那你所传送的指令就没有得到执行,而执行的是系统的中断。
xwill
[第2楼]   [ 回复时间:2011-08-24 21:41 ]   [引用]   [回复]   [ top ] 
荣誉值:0
信誉值:7
注册日期:2011-06-09 10:21
它的意思是不是说在发生除法溢出的时候,根据中断向量表找那个中断程序的入口地址,那个入口地址所在的地址是段地址:偏移地址是N*4:4*n+2   然后现在是把那些传送的代码送到这个入口地址所在的地址。 执行的时候那么存放在入口地址的数值就指向了那些传送的代码并且执行。
chinatree
[第3楼]   [ 回复时间:2011-08-24 22:15 ]   [引用]   [回复]   [ top ] 
荣誉值:118
信誉值:0
注册日期:2011-07-07 22:59
是的。悟性挺高的。嘎嘎。
jfztaq
[第4楼]   [ 回复时间:2012-10-05 13:51 ]   [引用]   [回复]   [ top ] 
荣誉值:0
信誉值:0
注册日期:2011-03-20 21:27
去掉了,你怎么可能去调用自己的中断处理程序呢?
jzy456789
[第5楼]   [ 回复时间:2018-03-26 13:48 ]   [引用]   [回复]   [ top ] 
荣誉值:0
信誉值:0
注册日期:2018-03-25 20:26
你去掉之后还好使是因为没去掉的程序已经修改中断处理程序的地址了,你去掉之后当然还好使了,不信, 你重系统,先执行你去掉之后的程序,看看好使不。
需要登录后才能回帖 -->> 请单击此处登录
    Copyright © 2006-2024   ASMEDU.NET  All Rights Reserved