汇编实验7

1. 计算给出数据的人均收入,并且填到表中

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

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'
  ;以上为21个年份的字符串

  dd 16,22,382,1356,2390,8000,16000,24486,50065,97479,140417,197514
  dd 345980,590827,803530,1183000,1843000,2759000,3753000,4649000,5937000
  ;以上为21年公司收入数据

  dw 3,7,9,13,28,38,130,220,476,778,1001,1442,2258,2793,4037,5635
  dw 8226,11542,14430,15257,17800
  ;以上为21年公司员工人数

data ends

table segment
  db 21 dup ('year summ ne ?? ')
table ends
  ;将data段数据按年份写入table段中

stack segment
  db 16 dup (0)
stack ends

codesg segment
start:
    mov ax,data
    mov ds,ax        ;源数据区段地址
    mov bx,0
    mov si,84
    mov di,168

    mov ax,table
    mov es,ax       ;目标区段地址
    mov bp,0

    mov ax,stack
    mov ss,ax     ;其实并没有用到这个
    mov sp,16     ;但是用到它了

    mov cx,21
  s:
    mov ax,[bx+0]
    mov es:[bp+0],ax
    mov ax,[bx+2]
    mov es:[bp+2],ax              ;年份数字传递
    mov byte ptr es:[bp+4],20h    ;空格

    mov ax,[si]
    mov es:[bp+5],ax
    mov ax,[si+2]
    mov es:[bp+7],ax            ;收入数据
    mov byte ptr es:[bp+9],20h    ;空格

    mov ax,[di]
    mov es:[bp+10],ax             ;员工数据
    mov byte ptr es:[bp+12],20h   ;空格

    mov ax,[si]
    mov dx,[si+2]                 ;设置被除数
    div word ptr [di]
    mov es:[bp+13],ax             ;保存商
    mov byte ptr es:[bp+15],20h   ;空格

    add bx,4
    add si,4
    add di,2
    add bp,16                  ;下次循环条件重设

    loop s

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

  

 

转载于:https://www.cnblogs.com/Since-natural-ran/p/6928151.html

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值