注册 登录
编程论坛 汇编论坛

实验12

有容就大 发布于 2012-08-16 16:31, 554 次点击
RT 王爽汇编实验12
下面是程序答案:
程序代码:
;#Mode=DOS
;
MASMPlus 单文件代码模板 - 纯 DOS 程序
;
--------------------------------------------------------------------
;
单个文件需要指定编译模式,否则默认是EXE方式,在系统设置中可以设置默认是DOS还是Windows.
;
编译模式自带了DOS/COM/CON/EXE/DLL/LIB这几种,如果有必要,可以更改ide.ini添加新的编译模式
;
当然,更好的是创建为一个工程.更方便及易于管理,使用方法:按Ctrl多选->创建工程.必须有多个文件

assume cs:code

code segment
     start: mov ax, 1000h
            mov bh, 1
            div bh               ; 上面3句是我自己添加的
           
            mov ax, cs
            mov ds, ax
            mov si, offset do0
           
            mov ax, 0
            mov es, ax
            mov di, 0200h
           
            mov cx, offset do0end - offset do0
            cld
            rep movsb
           
            mov ax, 0       ; 设置中断向量表
            mov es, ax
            mov WORD ptr es:[0 * 4], 200h
            mov WORD ptr es:[0 * 4 + 2], 0
           
            mov ah, 1
            int 21h
            mov ax, 4c00h
            int 21h
           
      do0:  jmp short do0start
             db 'divide error!'   ; 这里修改了几个不同的字符串
            

 do0start:  mov ax, cs
            mov ds, ax
            mov si, 202h
           
            mov ax, 0b800h
            mov es, ax
            mov di, 20 * 160 + 36 * 5   ; 这里修改了几个不同的位置
           
            mov cx, 13
        s:  mov al, [si]
            mov es:[di], al
            inc si
            add di, 2
            loop s
           
            mov ah, 1
            int 21h
            mov ax, 4c00h
            int 21h
           
   do0end: nop
code ends

end start

mov ax, 1000h
mov bh, 1
div bh
这个是我自己加上去的 为的是验证当发生除法溢出时 是不是调用了自己写的那个中断
但是遗憾的是结果就是除法溢出时还是调用了系统的中断 对我写的那个没有任何反应
有图验证  我将字符串的内容和位置都做了调整但是没出现调整后的字符
[attach]64257[/attach]
--
[attach]64258[/attach]
始终是出现overflow!而且在同一个位置,明显是系统的东西。

我的问题是我写那个貌似没错误 和答案一模一样 为什么div bh后不予理睬呢? 中断向量表我已经设置好了啊、
求解释 求调用。

[ 本帖最后由 有容就大 于 2012-8-16 16:32 编辑 ]
6 回复
#2
有容就大2012-08-16 16:38
嘿嘿 为什么现在看不到图了? [attach]64257[/attach]
#3
有容就大2012-08-16 16:38
[attach]64258[/attach]
#4
有容就大2012-08-16 16:39
只有本站会员才能查看附件,请 登录

--
只有本站会员才能查看附件,请 登录

#5
有容就大2012-08-16 16:43
自己解决了 我擦 原来要把除法放到写好的中断下面 。。。

#6
信箱有效2012-08-17 02:43
别学16位的DOS汇编了。 赶快开始学win32汇编吧。快快进入win32环境下编程的大门吧。这里有钞票,这里有美女,这里有帅哥,这里有皮鞭,这里有手铐,这里有蜡烛,这里还有加多宝凉茶。
#7
有容就大2012-08-17 09:15
回复 6楼 信箱有效
这个应该没有。。。。
1