您的位置:首页 > 其它

王爽 汇编语言 实验7

2011-06-24 11:16 246 查看
assume cs:codesg,ds:data;,ss:stack

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

DD 16, 22, 382, 1356, 2390, 8000, 16000, 24486, 50065, 97479, 140417, 197514
DD 345980, 590827, 803530, 118300, 184300, 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

;stack segment
; dw 8 dup(0)
;stack ends
codesg segment
start:mov ax,data
mov ds,ax
mov ax,table
mov es,ax
;mov ax,stack
;mov ss,ax
;mov sp,16

mov bp,0 ;用来指示一年的年份数据、总收入数据
mov si,0 ;用来指向公司雇员数
mov bx,0 ;用来指向table的年份数据、收入数据、雇员数据
mov cx,21
s:;复制年份
mov ax,ds:[bp]
mov es:[bx],ax
mov ax,ds:[bp+2]
mov es:[bx+2],ax
;复制收入 同时计算人均收入
mov ax,ds:[bp+54h]
mov dx,ds:[bp+56h]
mov es:[bx+5],ax
mov es:[bx+7],dx
div WORD ptr ds:[si+168]
mov es:[bx+0dh],ax ;得商
;复制雇员数
mov ax,ds:[si+168]
mov es:[bx+0ah],ax
;至此数据处理完毕 为进入下一循环做准备
add bx,10h
add bp,4h
add si,2h ;注意这里si与bp增长不同
loop s
mov ax,4c00h
int 21h

codesg ends
end start
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: