api 发表于 2011-11-30 13:33:15

请教一个安装中断的问题

assume cs:code
data segment
db 'conversation',0
data ends

code segment

start: mov ax,data
          mov ds,ax
          mov si,0
          int 7ch
          
          mov ax,4c00h
          int 21h
code ends

soga segment

      mov ax,0
      mov es,ax
          mov di,200h
          mov ax,cs
          mov ds,ax
          mov si,offset do7c
          mov cx,offset do7cend - offset do7c
          cld
          rep movsb
          
          mov ax,0
          mov es,ax
          mov word ptr es:,200h
          mov word ptr es:,0
          
          ;mov ax,4c00h
          ;int 21h
          
do7c:push si
   push cx
   mov ch,0
dostart:mov cl,ds:
       jcxz doend
       and byte ptr ,11011111b
       inc si
       jmp short dostart
       
doend:pop cx
      pop si
      iret          
do7cend:nop       

soga ends
end start安装中断的程序如果加了mov ax,4c00h int21h用debug跳不出中断程序,注释起来却可以跳出来。书上没提到这个事,谁能帮忙解释下。

zzmatrix 发表于 2011-11-30 14:53:14

你这个中断没有安装进去吧?

后知淡然 发表于 2011-11-30 17:13:21

do7cend:nop         

soga ends
end start从这里看,你的开始部分是从start开始执行代码。start: mov ax,data
          mov ds,ax
          mov si,0
          int 7ch
         
          mov ax,4c00h
          int 21h而这段代码只是设置了DS、SI再调用了下7C中断,就结束了。而并没有执行安装新的7C中断的代码!

api 发表于 2011-11-30 17:36:19

本帖最后由 api 于 2011-11-30 17:47 编辑

谢谢各位,现在搞清楚了
页: [1]
查看完整版本: 请教一个安装中断的问题