rainymay 发表于 2012-1-11 20:06:47

实验7代码,大家来看看,优化优化



assume cs:code, ds:data, es:table, ss:stack
data segment
db '1975', '1976', '1977', '1978', '1979', '1980'
db '1981', '1982', '1983', '1984', '1985', '1986'
db '1987', '1988', '1989', '1990', '1991', '1992'
db '1993', '1994', '1995'
;以上是表示21年的21个字符串

dd 16, 22, 382, 1356, 2390, 8000   ;偏移84
dd 16000, 24486, 50065, 97479, 140417, 197514
dd 345980, 590827, 803530, 1183000, 1843000, 2759000
dd 3753000, 4649000, 5937000
;以上是表示21年公司总收入的21个dword型数据

dw 3, 7, 9, 13, 28, 38      ;偏移A8
dw 130, 220, 476, 778, 1001, 1442
dw 2258, 2793, 4037, 5635, 8226, 11542
dw 14430, 15257, 17800
;以上是表示21年公司雇员人数的21个word型数据
data ends
table segment
db 21 dup ('year summ ne ?? ')
table ends
stack segment

dw 8 dup(0)

stack ends
code segment
start: mov ax, data
mov ds, ax;设置数据段为原数据所在处
mov ax, table
mov es, ax;设置附加段为目标数据所在处
mov ax, stack
mov ss, ax;程序中使用的栈空间
mov sp, 10H;设置栈顶指针
mov bx, 0
mov si, 0
mov di, 0
mov bp, 0

mov cx, 21;设置循环,21次
s: push cx   ;将循环变量压入栈中,以便使用cx寄存器
mov ax, ds:;取得员工数
mov es:0AH, ax
mov dx, ;将总收入的高16位送到dx
mov ax, ;将总收入的低16位送到ax
div word ptr es:0AH;计算平均收入
mov es:0DH, ax ;将商送入指定位置

mov cx, 2
s1: mov ax,    ;此处循环将年份和总收入送到目标地址
mov es:05H, ax
mov ax,
mov es:, ax
add di, 2
add si, 2
loop s1

pop cx   ;将循环变量出栈
add bp, 2
add si, 12
loop s

mov ax, 4c00H
int 21H
code ends
end start
页: [1]
查看完整版本: 实验7代码,大家来看看,优化优化