汇编网首页登录博客注册
十堰职业技术学院学生211020的学习博客
博客首页博客互动【做检测题】论坛求助

我的博客

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

[2009-06-07 22:13] 实验12

第十二章:0号中断的处理程序,使得在除法溢出发生时,在屏幕中间显示字符”divide error”然后返回到dos.
assume cs:code
code segment

start:
    mov ax,cs
    mov ds,ax
    mov si,offset do0         ;设置ds:si指向源地址

    mov ax,0
    mov es,ax
    mov di,200h       ;设置es:di指向目的地址

    mov cx,offset do0end-offset do0
    cld     ;设置传输方向为正
    rep movsb

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

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

      ;测试程序
    mov ax,1000h
    mov bl,1
    div bl

    mov  ax,4c00h
    int 21h

do0:    jmp short do0start
    db "divide error!"

do0start:

    mov ax,cs
    mov ds,ax
    mov si,202h             ;设置ds:si指向字符串

    mov ax,0b800h
    mov es,ax
    mov di,12*160+35*2            ;设置es:di指向显存空间的中间位置

    mov cx,13d           ;设置字符串长度

s:    mov al,[si]
    mov es:[di],al
    inc si
    add di,2          ;因为一个字符占两个字节的空间
    loop s

    mov ax, 4c00h
    int 21h

do0end:nop

code ends

end start
评论次数(1)  |  浏览次数(439)  |  类型(默认类型) |  收藏此文  | 

[  mywiil   发表于  2009-06-08 10:00  ]

不错,继续加油吧。

 
 请输入验证码  (提示:点击验证码输入框,以获取验证码