汇编语言(王爽)实验七

实验七

Power idea公司从1975年到1995年的基本情况如下

年份收入(千美元)雇员人均收入(千美元)
1975163
1976227
19773829
1978135613
1979239028
1980800038
………………
1995593700017800

程序中已经定义好了这些数据,编程,将data段中的数据写入到table段中,并计算人均收入(取整)

assume cs:codesg,ds:table,es:data

data segment
  db '1975', '1976', '1977', '1978', '1979', '1980', '1981'
  db '1982', '1983', '1984', '1985', '1986', '1987', '1988'
  db '1989', '1990', '1991', '1992', '1993', '1994', '1995'

  dd 16, 22, 382, 1356, 2390, 8000, 16000, 24486, 50065, 97479
  dd 140417, 197514, 345980, 590827, 803530, 1183000, 1843000
  dd 2759000, 3753000, 4649000, 5937000

  dw 3, 7, 9, 13, 28, 38, 130, 220, 476, 778, 1001, 1442, 2258
  dw 2793, 4037, 5635, 8226, 11542, 14430, 15257, 17800
data ends

table segment
  db 21 dup ('year summ ne ?? ')
table ends

codesg segment
  start:  mov ax,data
          mov es,ax
    
          mov ax,table
          mov ds,ax
         
          mov bx,0
          mov si,0
          mov di,168
          
          mov cx,21
        s:mov ax,es:[si]      ; 存年份
          mov [bx].0h[0],ax   ; 大小为两个字
          mov ax,es:[si+2]    ; 所以要存两次
          mov [bx].0h[2],ax

          mov ax,es:[si+84]   ; 存收入
          mov [bx].5[0],ax  
          mov ax,es:[si+86]   ; 同理,存两次
          mov [bx].5[2],ax

          mov ax,es:[di]      ; 存雇员人数
          mov [bx].10[0],ax

          mov ax,es:[si+84]
          mov dx,es:[si+86]
          div word ptr es:[di]  ;因为除数被除数都在内存中,要指明除数的长度
          mov [bx].13[0],ax
          
          add bx,10h 
          add si,4
          add di,2
          loop s

          mov ax,4c00h          ; 别忘了
          int 21h
codesg ends
end start

在这里插入图片描述

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值