. : : Assembly Language : : .  |  首页  |  我提出的问题  |  我参与的问题  |  我的收藏  |  消息中心   |  游客  登录  | 
提问 | 未解决 | 已解决 | 精华区 | 搜索 |
  《汇编语言》论坛 ->内中断
主题 : :  实验12 设置中断向量的段地址和偏移地址那两句是不是可以去掉?  [待解决] 回复[ 5次 ]   点击[ 531次 ]  
xwill
[帖 主] [ 发表时间:2011-08-24 11:08 ] 
荣誉值: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
jzy456789
[第5楼] [ 回复时间:2018-03-26 13:48 ] 
荣誉值:0
信誉值:0
注册日期:2018-03-25 20:26
你去掉之后还好使是因为没去掉的程序已经修改中断处理程序的地址了,你去掉之后当然还好使了,不信, 你重系统,先执行你去掉之后的程序,看看好使不。
需要登录后才能回帖 -->> 请单击此处登录
    Copyright © 2006-2024   ASMEDU.NET  All Rights Reserved