鱼C论坛

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

[汇编作业问题]郁闷了一晚上.趁还没到11点停电赶紧发帖请教下!

[复制链接]
发表于 2013-11-10 22:42:36 | 显示全部楼层 |阅读模式

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

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

x
本帖最后由 l万lin 于 2013-11-10 22:47 编辑

实验7
问题截图: 1.jpg
数据看程序就可以了
题目要求:
2.png
我写的代码:
  1. assume cs:codesg,ds:data,es:table

  2.         data segment
  3.                 db '1975','1976','1977','1978','1979','1980','1981','1982','1983'
  4.                 db '1984','1985','1986','1987','1988','1989','1990','1991','1992'
  5.                 db '1993','1994','1995'              ;偏移地址:0-53H
  6.                 dd 16,22,382,1356,2390,8000,16000,24486,50065,97479,140417,197514
  7.                 dd 345980,590827,803530,1183000,1843000,2759000,3753000,4649000,5937000                                ;偏移地址:054H-0A7H
  8.                 dw 3,7,9,13,28,38,130,220,476,778,1001,1442,2258,2793,4037,5635,8226
  9.                 dw 11452,14430,15257,17800                      ;偏移地址:0A8H-0D2H
  10.         data ends
  11.         table segment
  12.                 db 21 dup ('year summ ne ?? ')
  13.         table ends

  14.         codesg segment
  15.         start:
  16.         mov ax,data
  17.         mov ds,ax
  18.         mov ax,table
  19.         mov es,ax
  20.         
  21.         mov cx,21
  22.         mov bx,0
  23.         mov si,0
  24.         s0:
  25.         mov al,[bx+0]
  26.         mov es:[si+0],al
  27.         mov al,[bx+1]
  28.         mov es:[si+1],al
  29.         mov al,[bx+2]
  30.         mov es:[si+2],al
  31.         mov al,[bx+3]
  32.         mov es:[si+3],al
  33.         add bx,4
  34.         add si,10H
  35.         loop s0
  36.         
  37.         mov cx,21
  38.         mov bx,0
  39.         mov si,0
  40.         s1:
  41.         mov ax,[54H+bx]
  42.         mov dx,[54H+bx+2]
  43.         mov es:[5+si],ax
  44.         mov es:[5+si+2],dx
  45.         add bx,4
  46.         add si,10H
  47.         loop s1
  48.         
  49.         mov cx,21
  50.         mov bx,0
  51.         mov si,0
  52.         s2:
  53.         mov ax,[08AH+bx]                                                ;从ds段中偏移地址为08AH处开始取值放入ax中
  54.         mov es:[0AH+si],ax                                                ;再从ax放入es段0A开始处
  55.         add bx,2                                                     ;因为存储类型为dw,所以bx加2
  56.         add si,10H
  57.         loop s2
  58.         
  59.         mov cx,21
  60.         mov bx,0
  61.         s3:
  62.         mov ax,es:[bx+5]                                                ;取出收入低位放入ax寄存器中,因为存储类型为dd
  63.         mov dx,es:[bx+7]                                                ;同理取出收入高位放入dx中
  64.         mov bx,es:[bx+0AH]                                ;取出雇员数放入bx中        
  65.         div bx                                                      ;求平均
  66.         mov es:[bx+0DH],ax                                ;把平均数放入es段偏移地址0DH开始处
  67.         add bx,10H
  68.         loop s3
  69.         
  70.         mov ax,4c00h
  71.         int 21h
  72.         codesg ends
  73. end start
复制代码
出现的问题:
循环0和1没有问题,就是后面两个循环中出现了问题,我的思路在代码注释里写了,但是debug运行后查看的结果不对,检测修改好几次还是没有成功,初学汇编.还望多指教.写的比较冗杂,求解!




ps:只从学了编程以后得了强迫症,发个帖子也得整理好久,哎.....

小甲鱼最新课程 -> https://ilovefishc.com
回复

使用道具 举报

 楼主| 发表于 2013-11-11 13:56:50 | 显示全部楼层
自己顶顶!我顶......
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

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

GMT+8, 2025-7-15 05:42

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

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