关于王爽的汇编语言的实验七,以下是我的代码的解法
assume cs:code
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 sumn ne ?? ')
table ends
stack segment
dW 0,0
stack ends
code segment
start:
mov ax,data
mov ds,ax
mov bx,0E0H
mov ax,STACK
mov ss,ax
mov sP,4
MOV DI,0
mov cx,21
MOV AX,00A8H
S0:PUSH CX
PUSH AX
MOV SI,0
;传入年份
MOV CX,2
S1:MOV AX,[DI]
MOV [BX+SI],AX
ADD SI,2
ADD DI,2
LOOP S1
SUB DI,4
SUB SI,4
;传入总收入
MOV CX,2
S2:MOV AX,[DI+54H]
MOV [BX+SI+5],AX
ADD SI,2
ADD DI,2
LOOP S2
SUB SI,4
SUB DI,4
;传入空格
MOV AX,20H
MOV [BX+9],AX
;传入总人数
POP AX;
pop CX;
MOV SI,AX
MOV AX,[SI]
MOV [BX+10],AX
ADD SI,2
MOV AX,SI
PUSH AX;
pUSH CX;
;传入人均收入
MOV AX,[BX+5];
MOV DX,[BX+7];
DIV WORD PTR [BX+10]
MOV [BX+13],AX
POP CX
POP AX
ADD BX,10H
ADD di,4
LOOP S0
mov ax,4c00h
int 21h
code ends
end start