鱼C论坛

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

[汇编作业] 看着容易,做的难啊

[复制链接]
发表于 2014-5-9 23:20:19 | 显示全部楼层 |阅读模式

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

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

x
  1. assume ds:data,cs:code,es:table,ss:stack

  2. data segment
  3.         ;年份
  4.         db '1975','1976','1977','1978','1979','1980','1981','1982','1983'
  5.         db '1984','1985','1986','1987','1988','1989','1990','1991','1992'
  6.         db '1993','1994','1995'
  7.        
  8.         ;收入
  9.         dd 16,22,382,1356,2390,8000,16000,24486,50065,97479,140417,197514
  10.         dd 345980,690827,803530,1183000,1843000,2759000,3753000,4649000,593700
  11.        
  12.         ;人数
  13.         dw 3,7,9,13,28,38,130,220,476,778,1001,1442,2258,2793,4037,5635,8226
  14.         dw 11542,14430,45257,17800
  15. data ends


  16. table segment
  17.         ;存放 年份 收入 人数 平均工资
  18.         db 21 dup('year summ ne ?? ')
  19. table ends


  20. stack segment
  21.         ;暂存数据
  22.         dw 8 dup(0)                        ;一个16个字节
  23. stack ends


  24. code segment
  25. start:
  26.                 ;源数据段
  27.                 mov ax,data
  28.                 mov ds,ax
  29.                
  30.                 ;存放的空间
  31.                 mov ax,table
  32.                 mov es,ax
  33.                
  34.                 ;栈段
  35.                 mov ax,stack
  36.                 mov ss,ax
  37.                 mov sp,16
  38.                
  39.                 ;初始化数据
  40.                 mov cx,21             ;一共21行数据
  41.                 mov bx,0                ;年份和收入都是占4个字节,我就用bx来索引
  42.                 mov si,0                ;定位人数
  43.                 mov di,0                ;目标空间
  44.                
  45.                 s:
  46.                          ;将年份保存到目标空间,每个年份有4个字符,就循环4次
  47.                          ;因为这里要修改外层循环的cx,所以我在之前保存一下cx的值
  48.                          push cx
  49.                          push bx
  50.                          mov cx,4
  51.                          
  52.                          s2:
  53.                                 mov al,[bx]
  54.                                 mov es:[di],al
  55.                                 inc bx
  56.                                 inc di
  57.                          loop s2
  58.                          add di,1        ;定位到目标空间的收入
  59.                          
  60.                          pop bx
  61.                          pop cx                ;还原cx的值
  62.                          
  63.                          ;取出收入
  64.                          mov ax,84[bx]        ;等下要用收入除以人数,所以dx存放高位,ax存放低位
  65.                          mov dx,84[bx+2]
  66.                          
  67.                          ;存入收入
  68.                          mov es:[di],ax
  69.                          add di,2
  70.                          mov es:[di],dx
  71.                          
  72.                          add di,3        ;定位到目标空间的人数
  73.                           
  74.                          ;取出人数,我用bx来存放,但是我不想修改bx的值,所以我先保存bx的值
  75.                          push bx
  76.                          mov bx,168[si]                ;168是人数的首地址
  77.                          
  78.                          ;存入人数
  79.                          mov es:[di],bx
  80.                          
  81.                          add di,3        ;定位到目标空间的平均工资
  82.                          
  83.                          ;求出平均工资
  84.                          div bx
  85.                           
  86.                          ;存入平均工资
  87.                          mov es:[di],ax
  88.                          pop bx         ;还原bx 的值
  89.                          
  90.                          add di,3        ;定位目标空间的下一行
  91.                          add bx,4        ;定位到下一个年份,和收入
  92.                          add si,2        ;定位到下一个人数
  93.                          
  94.                 loop s
  95.                
  96.                
  97.                 mov ax,4c00h
  98.                 int 21h
  99.                
  100. code ends
  101. end start
复制代码


想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

发表于 2014-5-10 00:32:10 | 显示全部楼层
完全看不懂
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2014-5-10 11:25:59 | 显示全部楼层
清晰明了。 大师, 你练过吧。
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2014-5-17 18:38:28 | 显示全部楼层
孩子奉劝你一句这么简单的 的问题还拿出来问。。你还是回去多看看书在来吧。:titter::titter::titter:
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

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

本版积分规则

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

GMT+8, 2024-5-20 05:56

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

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