鱼C论坛

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

[汇编作业] 第三版 第8章 实验7

[复制链接]
发表于 2016-2-24 01:52:49 | 显示全部楼层 |阅读模式

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

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

x
本帖最后由 andyup 于 2016-2-24 04:10 编辑

assume cs:codesg

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'
   
   dd 16,22,382,1356,2390,8000,16000,24486,50065,97479,140417,197514
   dd 345980,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
   
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 si,0
          mov di,168
          mov bx,0
          mov cx,21
          l:mov ax,[si];复制年份
            mov dx,[si+2]
                mov es:[bx],ax;写入年份
                mov es:[bx+2],dx
               
                mov ax,[di];复制雇员数
                mov es:[bx+10],ax;写入雇员数

                mov ax,[si+84];复制收入
                mov dx,[si+86]
                mov es:[bx+5],ax;写入收入
                mov es:[bx+7],dx
               
                div word ptr es:[bx+10];求人均收入
                mov es:[bx+13],ax
               
                add si,4
                add di,2
                add bx,16

      loop l

          mov ax,4c00h
          int 21h
codesg ends
end start

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

使用道具 举报

发表于 2016-2-28 15:55:13 | 显示全部楼层
结果一样,不过我是竖着来的
  1. assume cs:codesg,ds:data,ss: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'                                                        ;年份
  6.        
  7.         dd 16,22,382,1356,2390,8000,16000,24486,50065,97479,140417,197514
  8.         dd 345980,590827,803530,1183000,1843000,2759000,3753000,4649000,5937000        ;收入
  9.        
  10.         dw 3,7,9,13,28,38,130,220,476,778,1001,1442,2258,2793,4037,5635,8226
  11.         dw 11542,14430,15257,17800                                                     ;雇员
  12. data ends

  13. table segment
  14.         db 21 dup ('year summ ne ?? ')
  15. table ends

  16. codesg segment
  17. start:        mov ax,data
  18.                 mov ds,ax
  19.                 mov bx,0
  20.                 mov ax,table
  21.                 mov ss,ax
  22.                 mov sp,0              ;存放cx
  23.                 mov bp,0
  24.                
  25.                 mov cx,21
  26.         s:  push cx
  27.                 mov si,0
  28.                 mov di,0
  29.                
  30.                 mov cx,4
  31.         s0:        mov dl,ds:[bx][si]      ;转移年份
  32.                 mov ss:[bp][di],dl
  33.                 mov dh,ds:54H[bx][si]                ;转移收入
  34.                 mov ss:5[bp][di],dh
  35.                 inc si
  36.                 inc di
  37.                 loop s0
  38.                 add bp,10H
  39.                 add bx,4
  40.                 pop cx
  41.                 loop s
  42.                
  43.                 mov bx,0
  44.                 mov bp,0
  45.                 mov si,0
  46.                 mov di,0
  47.                 mov cx,21
  48.         s1:        mov dx,ds:0A8H[bx][si]      ;转移雇员数
  49.                 mov ss:0AH[bp][di],dx
  50.                 add di,10H
  51.                 add si,2
  52.                 loop s1
  53.                
  54.                 mov bx,0
  55.                 mov bp,0
  56.                 mov si,2
  57.                 mov di,0
  58.                 mov cx,21
  59.         s2:        mov dx,ds:54H[bx][si]            ;读取收入以作为被除数
  60.                 mov ax,ds:54H[bx][si-2]
  61.                 add si,4
  62.                
  63.                 div word ptr ds:0A8H[bx][di]        ;得到结果
  64.                 add di,2
  65.                
  66.                 mov ss:0DH[bp],ax             ;得到人均收入,转存
  67.                 add bp,10H
  68.                 loop s2
  69.                
  70.                 mov ax,4c00H
  71.                 int 21H
  72. codesg ends
  73. end start
复制代码
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

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

本版积分规则

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

GMT+8, 2025-7-12 22:28

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

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