鱼C论坛

 找回密码
 立即注册
查看: 3312|回复: 2

实验10 3数值显示 一直除法溢出

[复制链接]
发表于 2011-7-30 13:02:13 | 显示全部楼层 |阅读模式

马上注册,结交更多好友,享用更多功能^_^

您需要 登录 才可以下载或查看,没有账号?立即注册

x
  1. assume cs:code,ds:data,ss:ts
  2. data segment
  3.      db 16 dup (0)
  4. data ends

  5. ts segment
  6.      dw 8 dup (0)
  7. ts ends

  8. code segment
  9. ks:  mov ax,12666
  10.          mov bx,data
  11.          mov ds,bx
  12.          mov si,0
  13.          mov bx,ts
  14.          mov ss,bx
  15.          mov sp,16
  16.          mov bx,0
  17.          call dtoc
  18.          
  19.          mov dh,8
  20.          mov dl,3
  21.          mov cl,2
  22.          call show
  23.          
  24.          mov ax,4c00H
  25.          int 21H
  26.          
  27. dtoc:  

  28.                                      push dx
  29.                                      push cx
  30.                                      push bx
  31.                                      mov dx,0
  32.       t :                            mov bx,10
  33.                  div bx
  34.                  mov cx,ax
  35.                  add dx,30H
  36.                  mov [si],dl
  37.                  inc si
  38.                  jcxz f
  39.                                      jmp short  t
  40.                  
  41. f:                 
  42.                  
  43.                  
  44.                  pop bx
  45.                  pop cx
  46.                  pop dx
  47.                  push si
  48.                  ret
  49.                  
  50. show:                 
  51.          
  52.                  pop si
  53.                  push bx
  54.                  push cx
  55.                  
  56.                  mov al,160
  57.                  sub dh,1
  58.                  mul dh
  59.                  mov bx,ax
  60.                  
  61.                  sub dl,1
  62.                  mov al,2
  63.                  mul dl
  64.                  
  65.                  add bx,ax
  66.                  mov ax,0b800H
  67.                  add ax,bx
  68.                  mov es,ax
  69.                  mov di,0
  70.                  mov ah,cl
  71.         s:         mov al,[si]
  72.                  mov es:[di],ax
  73.                  sub si,1
  74.                  mov cx,si
  75.                  add di,2
  76.                  loop s
  77.                  mov al,[si]
  78.                  mov es:[di],ax
  79.                  push cx
  80.                  push bx
  81.                  ret
  82.                  
  83. code ends
  84. end ks
复制代码
我改了一个早上了都一直在除法溢出是在没办法了来论坛求教求教
用debug看到除法的得二次循环就除法溢出了:Q
小甲鱼最新课程 -> https://ilovefishc.com
 楼主| 发表于 2011-7-31 11:13:37 | 显示全部楼层
哈我终于搞定了
原来我没把dx里的余数清掉
  1. assume cs:code,ds:data
  2. data segment
  3.      db 16 dup (0)
  4. data ends


  5. code segment
  6. ks:  mov ax,12666
  7.          mov bx,data
  8.          mov ds,bx
  9.          mov si,0
  10.          call dtoc
  11.          
  12.          mov dh,8
  13.          mov dl,3
  14.          mov cl,2
  15.          call show
  16. zh:         push cx
  17.          mov ax,4c00H
  18.          int 21H
  19.          
  20. dtoc:  

  21.                                  push cx
  22.                  mov dx,0
  23.         t:         mov bx,10
  24.                  div bx
  25.                  add dx,30H
  26.                  mov ds:[si],dl
  27.                  mov dx,0
  28.                  inc si
  29.                  mov cx,ax
  30.                  jcxz f
  31.                                 loop  t
  32.                  
  33. f:                 
  34.                  add al,30H
  35.                  mov [si],al
  36.                  mov bx,si
  37.                  pop cx
  38.                  ret
  39.                  
  40. show:                 
  41.          
  42.                  push cx
  43.                  
  44.                  mov al,160
  45.                  sub dh,1
  46.                  mul dh
  47.                  mov bx,ax
  48.                  
  49.                  sub dl,1
  50.                  mov al,2
  51.                  mul dl
  52.                  
  53.                  add bx,ax
  54.                  mov ax,0b800H
  55.                  mov es,ax
  56.                  mov ah,cl
  57.                  mov di,0
  58.                  
  59.         s:         mov cx,si
  60.                          mov al,ds:[si]
  61.                  mov es:[bx+di],ax
  62.                  sub si,1
  63.                  add di,2
  64.                  jcxz o
  65.                  jmp short s
  66.         o:         mov al,[si]
  67.                  mov es:[di],ax
  68.                  jcxz zh

  69.                  
  70. code ends
  71. end ks
复制代码
这个是改好的分享一哈希望有人给点建议
还有杂关帖子,这个也要研究一下
小甲鱼最新课程 -> https://ilovefishc.com
发表于 2011-7-31 22:26:55 | 显示全部楼层
实验10的第3个实验很考验人啊。我以前做的时候做了2天才搞定,还问了好多人的呵呵
小甲鱼最新课程 -> https://ilovefishc.com
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

小黑屋|手机版|Archiver|鱼C工作室 ( 粤ICP备18085999号-1 | 粤公网安备 44051102000585号)

GMT+8, 2025-4-22 07:38

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

快速回复 返回顶部 返回列表