鱼C论坛

 找回密码
 立即注册
查看: 2703|回复: 1

第八章实验7,自编的完整代码,最后求人均收入出问题了!求助!!

 关闭 [复制链接]
发表于 2011-9-10 14:56:48 | 显示全部楼层 |阅读模式

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

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

x
本帖最后由 gfking 于 2011-9-10 22:22 编辑
assume cs:codesg,ds:datasg,es:table

datasg segment
        db '1975','1976','1977','1978','1979','1980','1981','1982','1983','1984'
        db '1985','1986','1987','1988','1989','1990','1991','1992','1993'
        db '1994','1995'
        
        dd 16,22,382,1356,2390,8000,16000,24486,50065,97479,140417,197514,345980
        dd 590827,803530,1183000,1843000,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
        
        dw 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0
datasg ends

table segment
   db 21 dup('fcuk dup command')
table ends

codesg segment
start: mov ax,datasg
       mov ds,ax                           ;定义数据段
       mov bx,0000H                        ;段起始地址
       
       mov ax,table
       mov es,ax                           ;定义table段
       mov bp,0000H                        ;行起始地址
       mov di,0000H                        ;行内年份字段起始地址
       
       mov cx,21
 year: mov dx,cx
       mov cx,4
year0: mov al,[bx]
       mov es:[bp+di],al
       inc bx
       inc di
       loop year0
       
       mov es:[bp+di],20H                  ;空格
       
       add bp,0010H                        ;定位talbe段中下一条记录
       mov di,0000H                        ;定位talbe段中下一条记录的年份初始地址
       mov cx,dx
       loop year
       
       mov bp,0000H                        ;行起始地址
       mov di,0005H                        ;行内年收入字段起始地址
       
       mov cx,21
  sum: mov dx,cx
       mov cx,4
 sum0: mov al,[bx]
       mov es:[bp+di],al
       inc bx
       inc di
       loop sum0
       
       mov es:[bp+di],20H                  ;空格
       
       add bp,0010H                        ;定位talbe段中下一条记录
       mov di,0005H                        ;定位talbe段中下一条记录的年收入初始地址
       mov cx,dx
       loop sum
       
       mov bp,0000H                        ;行起始地址
       mov di,000aH                        ;行内雇员数字段起始地址
       
       mov cx,21
  emp: mov dx,cx
       mov cx,2
 emp0: mov al,[bx]
       mov es:[bp+di],al
       inc bx
       inc di
       loop emp0
       
       mov es:[bp+di],20H                  ;空格
       
       add bp,0010H                        ;定位talbe段中下一条记录
       mov di,000aH                        ;定位talbe段中下一条记录的雇员数初始地址
       mov cx,dx
       loop emp
       
       mov bp,0000H                        ;行起始地址
       mov di,000dH                        ;行内人均收入字段的起始地址
       
       mov cx,21
  per: mov dx,cx
       mov cx,2
 per0: mov al,[bx]
       mov es:[bp+di],al
       inc bx
       inc di
       loop per0
       
       mov es:[bp+di],20H                  ;空格
       
       add bp,0010H                        ;定位talbe段中下一条记录
       mov di,000dH                        ;定位talbe段中下一条记录的人均收入初始地址
       mov cx,dx
       loop per
       
       mov bp,0000H                        ;行起始地址
       mov cx,21
count: 
       mov di,0005H                        ;行内年收入字段起始地址
       
       mov ax,es:[bp+di]                   ;被除数低八位放入ax寄存器
       add di,0002H
       mov dx,es:[bp+di]                   ;被除数高八位放入dx寄存器
       add di,0003H                        ;di指向除数
       
       div word ptr es:[bp+di]             ;计算人均收入值
       mov di,000dH                        ;di指向商数存放地址
       mov es:[bp+di],ax                   ;商数存入人均收入字段
       
       add bp,0010H                        ;定位talbe段中下一条记录
       loop count
       
       mov ax,4c00H
       int 21H
       
codesg ends
end start
end
           
前面提得年份问题已经解决,现在的问题是,求商数不对,大家帮忙看看,最后那段代码,count循环那段,错哪里啦?

先谢谢大家!!!!

好了,看出来了,解决了!!

想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
发表于 2011-9-10 16:03:18 | 显示全部楼层

回帖奖励 +1 鱼币

budong 不懂 不懂
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

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

GMT+8, 2024-11-19 04:47

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

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