实验7 P172 DIV 分溢出 帮忙看看。
assume cs:codedata 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!
你用debug跟踪看看吧,看前几项的传输到table表有没有问题;
另外你代码里是不是有这样的问题:
1、数字的表示有些乱,比如ds:这里的54应该是16进制吧;那就应该表示成54h,或者你干脆用ds:反而清楚一些。
2、循环的递增条件:
add bx,16
add si,2
add di,2
这里有问题;年份数据和年收入数据进入下次循环应该是+4;而年员工数数据进入下次循环应该是+2.这里你再调整下。 tsembrace 发表于 2011-9-28 12:04 static/image/common/back.gif
你用debug跟踪看看吧,看前几项的传输到table表有没有问题;
另外你代码里是不是有这样的问题:
1、数字的 ...
纠正错误了! 谢谢
kan了你发的那代码,让我有了新的思路!
:lol:lol
:D:lol qq952670771 发表于 2011-10-13 18:18 static/image/common/back.gif
kan了你发的那代码,让我有了新的思路!
大家好,才是真的好!
分享{:5_104:}
感觉汇编编程就是麻烦!!!!!!!!!!!
页:
[1]