无名似名 发表于 2018-4-4 23:18:56

实验7

本帖最后由 无名似名 于 2018-4-5 16:17 编辑

没有看答案自己先写的,跑完后看了看内存数据,应该没问题

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'
    ;21个年份
    dd 16,22,382,1356,2390,8000,16000,24486,50065,97479,140417,197514
    dd 34980,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,8226
    dw 11542,14430,15257,17800
    ;21年雇员人数
data ends

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


codesg segment

start:
    mov ax,data
    mov ds,ax

    mov ax,table
    mov es,ax

    mov si,0    ;4字节索引
    mov di,0    ;2字节索引

    mov bx,0    ;table行索引

    mov cx,21
s:
   
    ; 年存储
    mov ax, ds:0
    mov es:, ax
    mov ax, ds:0
    mov es:, ax

    mov byte ptr es:, 20h ;空格
    ; 雇员人数
    mov ax, ds:168
    mov es:,ax
    mov byte ptr es:, 20h ;空格


    ;收入存储
    mov ax, ds:84
    mov es:,ax
    mov dx, ds:84
    mov es:, dx

    mov byte ptr es:, 20h ;空格

    ; 除法计算人均收入并写入
    div word ptr es:
    mov es:,ax

    mov byte ptr es:, 20h ;空格


    add bx,16
    add si,4
    add di,2
    loop s

    mov ax,4c00h
    int 21h

codesg ends

end start

页: [1]
查看完整版本: 实验7