王爽 汇编语言 实验7

assume cs:codesg,ds:data;,ss:stack
data segment
              DB        '1975', '1976', '1977', '1978', '1979', '1980', '1981', '1982' 
              DB        '1983', '1984', '1985', '1986', '1987', '1988', '1989', '1990' 
              DB        '1991', '1992', '1993', '1994', '1995' 
     
              DD        16, 22, 382, 1356, 2390, 8000, 16000, 24486, 50065, 97479, 140417, 197514 
              DD        345980, 590827, 803530, 118300, 184300, 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
;stack segment
 ; dw 8 dup(0)
;stack ends
codesg segment
 start:mov ax,data
       mov ds,ax
       mov ax,table
       mov es,ax
       ;mov ax,stack
       ;mov ss,ax
       ;mov sp,16
       
       mov bp,0 ;用来指示一年的年份数据、总收入数据
       mov si,0  ;用来指向公司雇员数
       mov bx,0 ;用来指向table的年份数据、收入数据、雇员数据
       mov cx,21
       s:;复制年份
       mov ax,ds:[bp]
       mov es:[bx],ax
       mov ax,ds:[bp+2]
       mov es:[bx+2],ax
        ;复制收入 同时计算人均收入
       mov ax,ds:[bp+54h]
       mov dx,ds:[bp+56h]
       mov es:[bx+5],ax
       mov es:[bx+7],dx
       div WORD ptr ds:[si+168]
       mov es:[bx+0dh],ax  ;得商
       ;复制雇员数
       mov ax,ds:[si+168]
       mov es:[bx+0ah],ax
        ;至此数据处理完毕 为进入下一循环做准备
       add bx,10h
       add bp,4h
       add si,2h ;注意这里si与bp增长不同
       loop s
       mov ax,4c00h
       int 21h
       
codesg ends
end start
       

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值