汇编网首页登录博客注册
billy_asm的学习博客
博客首页博客互动【做检测题】论坛求助

我的博客

个人首页 |  我的文章 |  我的相册 |  我的好友 |  最新访客 |  文章收藏 |  论坛提问 |  友情链接 |  给我留言  
图片载入中
学习动态
友情链接

[2011-04-21 22:27] 实验12 编写0号中断程序

图片载入中
;用心,细心,不要因为书上有,就对着抄。还是要自己动手写一遍才能更深刻地记住。

assume cs:code

code segment
 start:mov ax,cs
        mov ds,ax
        mov ax,0
        mov es,ax
        mov si,offset in0    ;指向要复制指令的首地址
        mov di,200H          ;要复制到的起始地址
        mov cx,offset in0end-offset in0  ;计算0中断程序的字节数
        
        rep movsb       ;把0号中断程序所有指令复制到0:200开始位置
        
        mov word ptr es:[0*4],200H     ;置0号中断到中断向量表
        mov word ptr es:[0*4+2],0

       mov ax,1000H    ;应用例子
       mov bl,1
       div bl          ;除法溢出,调用0号中断
       
 mov ax,4c00h
 int 21h
 
in0: jmp short in0start
      db "Divide Error!"
in0start:mov ax,cs
         mov ds,ax
         mov ax,0B800H
         mov es,ax
         mov si,202H
         mov di,12*160+34*2  ;定位屏幕中间
         mov cx,13         ;共13个字符
   r13:  mov al,[si]
         mov es:[di],al
         mov byte ptr es:[di+1],12  ;置字符高亮红色
         inc si
         add di,2
         loop r13
         
  mov ax,4c00h
  int 21h 
in0end: nop

code ends 

end start
评论次数(0)  |  浏览次数(575)  |  类型(实验) |  收藏此文  | 
 
 请输入验证码  (提示:点击验证码输入框,以获取验证码