|
主题 : : 实验七中不会解决雇员数的循环。 [待解决] |
回复[ 2次 ]
点击[ 528次 ] | |
|
|
|
|
[帖 主]
[ 发表时间:2007-11-04 17:30 ]
[引用]
[回复]
[ top ] | |
荣誉值:0
信誉值:0
注册日期:2007-09-30 21:53 |
|
|
|
|
|
[第1楼]
[ 回复时间:2007-11-04 18:26 ]
[引用]
[回复]
[ top ] | |
荣誉值:0
信誉值:0
注册日期:2007-09-30 21:53 |
assume cs:code
data segment
db '1975', '1976', '1977', '1978', '1979', '1980', '1981', '1982', '1983', '1984'
db '1985', '1986', '1987', '1988', '1989', '1990', '1991', '1992', '1993', '1994'
db '1995'
dd 16,22,382,1356,2390,8000,16000,24486,50065,97479,140417,197514
dd 345980,590827,803530,1183000,1843000,2759000,3753000,4694000,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 ;10
table segment
db 21 dup ('year summ ne ?? ')
table ends
stack segment
dw 8 dup (' ')
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,16
mov dx,0
mov bx,0
mov cx,21
s:
push cx
push dx
mov si,0
mov di,0
mov cx,4
s1:
mov al,ds:[bx+si]
mov es:[bp+di],al
inc si
inc di
loop s1
mov si,0
mov di,0
mov cx,2
s0:
mov ax,ds:[bx+si+054h]
mov es:[bp+di+5],ax
add si,2
add di,2
loop s0
add bx,4
add bp,16
pop cx
loop s
;以上先导入年份和收入数据。
mov bx,0
mov bp,0
mov cx,21
s2:
;push cx
mov ax,ds:[bx+0a8h]
mov es:[bp+0ah],ax
mov ax,es:[bp+5]
mov dx,es:[bp+7]
div word ptr es:[bp+0ah]
mov es:[bp+0dh],ax
add bx,2
add bp,16
;pop
loop s2
;以上导入雇员,并计算人均收入
mov ax,4c00h
int 21h
code ends
end start
;--------------
;变通了一下,总算做完了。 | | |
|
|
|
|
[第2楼]
[ 回复时间:2007-11-04 19:18 ]
[引用]
[回复]
[ top ] | |
荣誉值:0
信誉值:0
注册日期:2007-09-30 21:53 |
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,2369,8000,16000,24486,50065,97479,140417,197514
dd 345980,590872,803530,1183000,1843000,2759000,3753000,4649000,59307000
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
code segment
start:
mov ax,data
mov ds,ax
mov bx,0
mov si,168
mov di,0
mov ax,table
mov es,ax
mov cx,21
s:
mov ax,[bx]
mov es:[di],ax
mov ax,[bx+2]
mov es:[di+2],ax
mov ax,[bx+84]
mov es:[di+5],ax
mov dx,[bx+86]
mov es:[di+7],dx
div word ptr [si]
mov dx,[si]
mov es:[di+10],dx
mov es:[di+13],ax
add si,2
add bx,4
add di,16
loop s
mov ax,4c00h
int 21h
code ends
end start
;改编了一下,最简洁的方法。 | | |
|