trump 发表于 2014-7-2 23:21:00

实验12 编写0号中断的处理程序

本帖最后由 trump 于 2014-7-3 10:31 编辑

编写0号中断的处理程序,使得在除法溢出发生时,在屏幕中间显示字符串"divide error!",然后返回到DOS。
assume cs:codesg
codesg segment
start:
      mov ax,cs
      mov ds,ax
      mov si,offset do_start      
      mov ax,0
      mov es,ax
      mov di,200h      
      mov cx,offset do_end - offset do_start
      cld
      rep movsb
      
      mov ax,0
      mov ds,ax
      mov ds:,200h
      mov ds:,0
      
      mov ax,4c00h
      int 21h      
do_start:      
      jmp main
      db 'divide error!',0
main:
      mov ax,0
      mov ds,ax
      mov si,202h
      mov ax,0b800h
      mov es,ax
      mov di,160*12+36*2
s_start:
      mov cl,ds:
      mov ch,0
      jcxz s_end
      mov es:,cl      
      inc si
      add di,2
      jmp s_start
s_end:      
      iret
do_end:
      nop      
codesg ends
end start

页: [1]
查看完整版本: 实验12 编写0号中断的处理程序