. : : Assembly Language : : .  |  首页  |  我提出的问题  |  我参与的问题  |  我的收藏  |  消息中心   |  游客  登录  | 
刷新 | 提问 | 未解决 | 已解决 | 精华区 | 搜索 |
  《汇编语言》论坛 ->内中断
  管理员: assembly   [回复本贴] [收藏本贴] [管理本贴] [关闭窗口]
主题 : :  实验12,安装好了。然后我编了一个除法溢出的小程序,为什么执行后显示不出来“divide error”呢??  [待解决] 回复[ 13次 ]   点击[ 906次 ]  
jeremy
[帖 主]   [ 发表时间:2012-08-03 16:53 ]   [引用]   [回复]   [ top ] 
荣誉值:0
信誉值:0
注册日期:2012-03-09 19:30
assume cs:code
  data segment
   db 16 dup (0)
  data ends
  code segment
   start: mov ax,cs
          mov ds,ax
          mov si,offset do0
          mov ax,0
          mov es,ax
          mov di,0200h
          mov cx,offset do0-offset do0end
          cld
          rep movsb

          mov ax,0
          mov es,ax
          mov word ptr es:[0*4],0200h
          mov word ptr es:[0*4+2],0

          mov ax,4c00h
          int 21h

     do0: jmp short do0start
          jb 'divide error!'
     do0start:
          push
          push
          push
          mov ax,0b8ooh
          mov es,ax
          mov di,12*160+35*2
          mov ax,0
          mov ds,ax
          mov si,0202h
          mov cx,13
      s:  mov al,ds:[di]
          mov es:[si],al
          mov es:[si+1],2
          inc di
          add si,2
          loop s

          mov ax,4c00h
          int 21h
 do0end:  nop

     code ends
  end start

这个大家都会,和书上对了一下,感觉没问题。


然后就是另外一个程序
assume cs:code
 code segment
  mov ax,1000h
  mov bh,01
  div bh
 code ends
end
jeremy
[第1楼]   [ 回复时间:2012-08-03 16:54 ]   [引用]   [回复]   [ top ] 
荣誉值:0
信誉值:0
注册日期:2012-03-09 19:30
坐沙发,求解答
wwt406
[第2楼]   [ 回复时间:2012-08-11 15:44 ]   [引用]   [回复]   [ top ] 
荣誉值:0
信誉值:1
注册日期:2012-04-23 22:44
mov ax,0b8ooh      你这里打错了,是0b800H  你打的好像不是0
          mov es,ax
asura-king
[第3楼]   [ 回复时间:2012-11-25 19:22 ]   [引用]   [回复]   [ top ] 
荣誉值:0
信誉值:0
注册日期:2012-09-16 00:19
你应该是在Windows下分别执行这两个程序吧? 一你就把他们合在一起  二就到DOS下执行。
tianxiawang_yi
[第4楼]   [ 回复时间:2013-07-02 22:58 ]   [引用]   [回复]   [ top ] 
荣誉值:0
信誉值:0
注册日期:2013-07-01 15:21
JMP下一句的 JB是什么意思
benbenfei123
[第5楼]   [ 回复时间:2013-07-22 11:34 ]   [引用]   [回复]   [ top ] 
荣誉值:0
信誉值:0
注册日期:2013-07-14 15:44
回复:[第4楼]
------------------
jb 中的b是below的缩写,jb则是低于则转移
书中p226
benbenfei123
[第6楼]   [ 回复时间:2013-07-22 11:42 ]   [引用]   [回复]   [ top ] 
荣誉值:0
信誉值:0
注册日期:2013-07-14 15:44
回复:[贴 主]
------------------
我试过了,可以啊
benbenfei123
[第7楼]   [ 回复时间:2013-07-22 12:03 ]   [引用]   [回复]   [ top ] 
荣誉值:0
信誉值:0
注册日期:2013-07-14 15:44
回复:[第6楼]
------------------
呵呵,没改系统设的字符,我还以为可以呢。给自己的程序显示的字符改下,才发现自己错了。
benbenfei123
[第8楼]   [ 回复时间:2013-07-23 17:22 ]   [引用]   [回复]   [ top ] 
荣誉值:0
信誉值:0
注册日期:2013-07-14 15:44
回复:[第7楼]
------------------
呵呵~~实践证明我又错了,这个是可以的。显示的字符mov di,12*160+35*2 ;在12行的中间位置,不仔细看还容易忽略呵呵呵
stop1204
[第9楼]   [ 回复时间:2013-08-30 22:29 ]   [引用]   [回复]   [ top ] 
荣誉值:424
信誉值:0
注册日期:2013-04-08 10:06
mov cx,offset do0-offset do0end  打反了

应该是 do0end - do0
caoxwei
[第10楼]   [ 回复时间:2015-02-09 09:51 ]   [引用]   [回复]   [ top ] 
荣誉值:0
信誉值:0
注册日期:2015-02-01 20:36
jb,应该改成db原书 是db
caoxwei
[第11楼]   [ 回复时间:2015-02-09 10:48 ]   [引用]   [回复]   [ top ] 
荣誉值:0
信誉值:0
注册日期:2015-02-01 20:36
回复:[贴 主]
------------------
没必要定义data段
xinzhi1992
[第12楼]   [ 回复时间:2021-08-27 17:17 ]   [引用]   [回复]   [ top ] 
荣誉值:0
信誉值:0
注册日期:2021-08-18 15:55
你都没有进行除法运算,怎么进入到中断呢?
xinzhi1992
[第13楼]   [ 回复时间:2021-08-27 17:17 ]   [引用]   [回复]   [ top ] 
荣誉值:0
信誉值:0
注册日期:2021-08-18 15:55
你都没有进行除法运算,怎么进入到中断呢?
需要登录后才能回帖 -->> 请单击此处登录
    Copyright © 2006-2024   ASMEDU.NET  All Rights Reserved