|
马上注册,结交更多好友,享用更多功能^_^
您需要 登录 才可以下载或查看,没有账号?立即注册
x
assume cs:coddsg
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,97417,140417,1975114
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 summ ne ?? ')
table ends
coddsg segment
start: mov ax, data
mov ds, ax
mov ax, table
mov es, ax
mov si, 0
mov bx, 0
mov di, 0
mov cx, 21
s0: mov ax, [si] ;年份的低位部分
mov es:[bx], ax
mov ax, [si+2] ;年份的高位部分
mov es:[bx+2], ax
mov ax, ds:[si+84] ;收入的低位部分
mov es:[bx+5], ax
mov dx, ds:[si+86] ;收入的高位部分
mov es:[bx+7], dx
div word ptr ds:[di+168] ;平均收入
mov es:[bx+0dh], ax
mov ax, ds:[di+168] ;雇员数
mov es:[bx], ax
add si, 4
add di, 2
add bx, 10h
loop s0
mov ax, 4c00h
int 21h
coddsg ends
end start
你们看看这个代码有问题吗?
还有,最初的时候我的ds和es是互换的,可是每次执行到mov ax, es:[si]的时候,我用debug看的时候,总是把ds:[si]里面的内容复制到ax中,难道是我看花眼了?还是别的什么我不知道的原因?有没有人帮我解释一下啊? |
|