鱼C论坛

 找回密码
 立即注册
查看: 2995|回复: 3

小甲鱼老师你在哪

[复制链接]
发表于 2011-10-20 08:52:51 | 显示全部楼层 |阅读模式

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

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

x
assume cs:code,ds:data,es:table
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','1996'
dd 16,22,382,1356,2390,8000,16000,24486,50065,97479,140417,197514
dd 345980,590827,803530,1183000,2759000,3753000,4649000,5937000
dw 3,7,9,13,28,38,130,220,476,778,1001,1442,2258,2793,4037,5635,8226
dw 11542,14430,15257,17800
data ends
table segment
db 21 dup('year summ ne ??')
table ends

code segment
start:
mov ax,data
mov ds,ax
mov ax,table
mov es,ax
mov bx,0
mov di,0
mov si,0
mov cx,21
s:mov al,[bx+0] ;年份
mov es:[di+0],al
mov al,[bx+1]
mov es:[di+1],al
mov al,[bx+2]
mov es:[di+2],al
mov al,[bx+3]
mov es:[di+3],al

mov ax,[bx+54h] ;收入
mov dx,[bx+56h]
mov es:[di+5h],ax
mov es:[di+7h],dx

mov ax,[si+0a8h] ;人数
mov es:[di+0ah],ax

mov ax,[bx+54h] ;人均收入
mov bx,[bx+56h]
div word ptr ax
mov es:[di+0dh],[si+0a8h]

add bx,4
add si,2
add di,16

loop s
mov ax,4c00h
int 21h
code ends
end start

显示divide overflow
求助小甲鱼老师
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
发表于 2011-10-20 09:45:42 | 显示全部楼层
{:1_1:}除法溢出了!
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
发表于 2011-10-20 09:57:58 | 显示全部楼层
你这代码我就根本编译通不过~
1、错误
mov ax,[bx+54h] ;人均收入
;熟悉下div用法,下面的bx应为dx
mov bx,[bx+56h]
;下面这句,ax已经是word型了,不需要指定ptr,但这里的问题是除数应该是员工数,而不是ax
div word ptr ax
;下面内存空间数据传输要用reg做中介的;况且你这句本身在这个代码段里也让人摸不着头脑,你这句用到了div的结果么?
mov es:[di+0dh],[si+0a8h]

上面整段改为:
mov ax,[bx+54h] ;人均收入 
mov dx,[bx+56h] 
div word ptr [si+0a8h] 
mov es:[di+0dh],ax 
2、优化mov al,[bx+0] ;年份
mov es:[di+0],al
mov al,[bx+1]
mov es:[di+1],al
mov al,[bx+2]
mov es:[di+2],al
mov al,[bx+3]
mov es:[di+3],al
调整为:
mov ax,[bx+0] ;年份 
mov es:[di+0],ax 
mov ax,[bx+2] 
mov es:[di+2],ax 
3、经过上述修改,发现编译依然有问题,发现:
3.1 数据区收入部分你少了一年的收入数,自己去数数吧
3.2 table区预设的字符串你少了一个字节,导致每行只有15byte,循环递增时候add di,16不能正确进入下一行。
;缺少最后一个空格
db 21 dup('year summ ne ?? ')
我估计你直接写完代码也就去调试了,调试了发现通不过就拿这儿来了;错误别人可以帮你指出的,粗心却需要自己认真些去克服,不然,多少有浪费彼此时间的味道~


想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
 楼主| 发表于 2011-10-20 12:50:21 | 显示全部楼层
谢谢楼上,粗心是挺害人的
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

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

GMT+8, 2024-10-8 22:16

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

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