l万lin 发表于 2013-11-10 22:42:36

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

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

实验7
问题截图:
数据看程序就可以了
题目要求:

我写的代码:
assume cs:codesg,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','1995'            ;偏移地址: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                              ;偏移地址:054H-0A7H
                dw 3,7,9,13,28,38,130,220,476,778,1001,1442,2258,2793,4037,5635,8226
                dw 11452,14430,15257,17800                      ;偏移地址:0A8H-0D2H
      data ends
      table segment
                db 21 dup ('year summ ne ?? ')
      table ends

      codesg segment
      start:
      mov ax,data
      mov ds,ax
      mov ax,table
      mov es,ax
      
      mov cx,21
      mov bx,0
      mov si,0
      s0:
      mov al,
      mov es:,al
      mov al,
      mov es:,al
      mov al,
      mov es:,al
      mov al,
      mov es:,al
      add bx,4
      add si,10H
      loop s0
      
      mov cx,21
      mov bx,0
      mov si,0
      s1:
      mov ax,
      mov dx,
      mov es:,ax
      mov es:,dx
      add bx,4
      add si,10H
      loop s1
      
      mov cx,21
      mov bx,0
      mov si,0
      s2:
      mov ax,                                                ;从ds段中偏移地址为08AH处开始取值放入ax中
      mov es:,ax                                                ;再从ax放入es段0A开始处
      add bx,2                                                   ;因为存储类型为dw,所以bx加2
      add si,10H
      loop s2
      
      mov cx,21
      mov bx,0
      s3:
      mov ax,es:                                                ;取出收入低位放入ax寄存器中,因为存储类型为dd
      mov dx,es:                                                ;同理取出收入高位放入dx中
      mov bx,es:                              ;取出雇员数放入bx中      
      div bx                                                      ;求平均
      mov es:,ax                              ;把平均数放入es段偏移地址0DH开始处
      add bx,10H
      loop s3
      
      mov ax,4c00h
      int 21h
      codesg ends
end start出现的问题:
循环0和1没有问题,就是后面两个循环中出现了问题,我的思路在代码注释里写了,但是debug运行后查看的结果不对,检测修改好几次还是没有成功,初学汇编.还望多指教.写的比较冗杂,求解!




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

l万lin 发表于 2013-11-11 13:56:50

自己顶顶!我顶......
页: [1]
查看完整版本: [汇编作业问题]郁闷了一晚上.趁还没到11点停电赶紧发帖请教下!