实验7,没看答案 自己弄了一晚上test7
本帖最后由 601900987 于 2018-6-22 19:36 编辑assume cs:codesg, ss:stacksg
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
stacksg segment
dw 0,0,0,0,0,0,0,0
stacksg ends
table segment
db 21 dup ('year summ ne ?? ')
table ends
codesg segment
start:mov ax,table
mov ds,ax
mov ax,stacksg
mov ss,ax
mov sp,16
mov ax,data
mov es,ax
mov bx,0
mov di,0
mov cx,21
s:push cx ;双层循环把年份填入
mov si,0
mov cx,4
s0:mov al,es:
mov ,al
inc si
inc di
loop s0
add bx,16
pop cx
loop s
mov bx,0
mov si,84
mov di,168
mov cx,21
s1:mov word ptr ax,es: ;低16位放入ax
mov ,ax
mov word ptr dx,es:;高16位放入dx
mov ,dx
div word ptr es:
mov ,ax
mov word ptr ax,es:
mov ,ax
add di,2
add si,4
add bx,16
loop s1
mov ax,4c00h
int 21h
codesg ends
end start
觉得楼主的程序有点乱,si寄存器一会儿表示table中的列,一会儿表示data中的数,有点看不懂
很清晰了,但是为什么最后在吧人数放进去呢 我看好多人都这么写 楼主能解释一下吗
页:
[1]