关键是感觉 发表于 2011-9-28 11:31:24

实验7 P172 DIV 分溢出 帮忙看看。

assume cs:code
data segment
db '1975','1976','1977','1978','1979','1980','1981','1982','1983'
db '1984','1985','1986','1987','1988','1989','1990','1991','1992'
db '1993','1994','1995'                                                 ;定义21个字符串,每个字符串占用4字0-53h
dd 16,22,382,1356,2390,8000,16000,24486,50065,97479,140417,197514      
dd 345980,590827,803530,1183000,1843000,2759000,3753000,4649000,5937000 ;定义21个DWword双字数据 54-A7H
dw 3,7,9,13,28,38,130,220,476,778,1001,1442,2258,2793,4037,5635,8226
dw 11542,14430,15257,17800                                             ;定义21个word字型数据 A8-D1
data ends
table segment
      db 21 dup ('year summ ne ?? ')                                    ;定义21个 16字节数据 21组
table ends
code segment
start:mov ax,data
      mov ds,ax
   mov ax,table
   mov es,ax
   
      sub si,si
   sub bx,bx
   mov cx,21
s:
   mov ax,ds:
   mov es:,ax
   mov ax,ds:
   mov es:.2,ax
   
   mov ax,.168
   mov es:.10,ax

   mov ax,ds:
   mov es:,ax
   mov dx,ds:56
   mov es:7,dx
      div word ptr es:.10
   mov es:13,ax
   
   add bx,16
   add si,2
   add di,2
   loop s


   mov ax,4c00h
   int 21h

   
code ends
end start
   
   
执行到DIV 分溢出,我看了程序逻辑上没有错误啊!
高手帮我看看,3Q!
   
   
   
   

tsembrace 发表于 2011-9-28 12:04:00

你用debug跟踪看看吧,看前几项的传输到table表有没有问题;
另外你代码里是不是有这样的问题:
1、数字的表示有些乱,比如ds:这里的54应该是16进制吧;那就应该表示成54h,或者你干脆用ds:反而清楚一些。
2、循环的递增条件:
   add bx,16
   add si,2
   add di,2

这里有问题;年份数据和年收入数据进入下次循环应该是+4;而年员工数数据进入下次循环应该是+2.这里你再调整下。

关键是感觉 发表于 2011-9-28 14:10:43

tsembrace 发表于 2011-9-28 12:04 static/image/common/back.gif
你用debug跟踪看看吧,看前几项的传输到table表有没有问题;
另外你代码里是不是有这样的问题:
1、数字的 ...

纠正错误了! 谢谢

qq952670771 发表于 2011-10-13 18:18:53

kan了你发的那代码,让我有了新的思路!
:lol:lol
:D:lol

关键是感觉 发表于 2011-10-13 19:59:59

qq952670771 发表于 2011-10-13 18:18 static/image/common/back.gif
kan了你发的那代码,让我有了新的思路!

大家好,才是真的好!
分享{:5_104:}

gongheng 发表于 2011-10-13 20:54:53

感觉汇编编程就是麻烦!!!!!!!!!!!
页: [1]
查看完整版本: 实验7 P172 DIV 分溢出 帮忙看看。