andyup 发表于 2016-2-24 01:52:49

第三版 第8章 实验7

本帖最后由 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,;复制年份
          mov dx,
                mov es:,ax;写入年份
                mov es:,dx
               
                mov ax,;复制雇员数
                mov es:,ax;写入雇员数

                mov ax,;复制收入
                mov dx,
                mov es:,ax;写入收入
                mov es:,dx
               
                div word ptr es:;求人均收入
                mov es:,ax
               
                add si,4
                add di,2
                add bx,16

      loop l

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

laozibuaiyuc 发表于 2016-2-28 15:55:13

结果一样,不过我是竖着来的{:5_109:}
assume cs:codesg,ds:data,ss:table

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 bx,0
                mov ax,table
                mov ss,ax
                mov sp,0            ;存放cx
                mov bp,0
               
                mov cx,21
        s:push cx
                mov si,0
                mov di,0
               
                mov cx,4
        s0:        mov dl,ds:      ;转移年份
                mov ss:,dl
                mov dh,ds:54H                ;转移收入
                mov ss:5,dh
                inc si
                inc di
                loop s0
                add bp,10H
                add bx,4
                pop cx
                loop s
               
                mov bx,0
                mov bp,0
                mov si,0
                mov di,0
                mov cx,21
        s1:        mov dx,ds:0A8H      ;转移雇员数
                mov ss:0AH,dx
                add di,10H
                add si,2
                loop s1
               
                mov bx,0
                mov bp,0
                mov si,2
                mov di,0
                mov cx,21
        s2:        mov dx,ds:54H            ;读取收入以作为被除数
                mov ax,ds:54H
                add si,4
               
                div word ptr ds:0A8H      ;得到结果
                add di,2
               
                mov ss:0DH,ax             ;得到人均收入,转存
                add bp,10H
                loop s2
               
                mov ax,4c00H
                int 21H
codesg ends
end start
页: [1]
查看完整版本: 第三版 第8章 实验7