回头再来 发表于 2012-11-11 15:48:48

自己做的实验7代码

assume cs:code,ss:stack,ds:data,es:table
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 345987,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

stack segment
        db ' '
stack ends
code segment
start:        mov ax,data
        mov ds,ax
        mov ax,stack
        mov ss,ax
        mov ax,table
        mov es,ax
        mov di,0
        mov bx,0
        mov si,0

        mov cx,21
s0:        push cx            ;外围循环计数压栈
        mov bp,0
        mov cx,2
s:        mov ax,      ;bx计给出数据默认ds(数据处年)
        mov es:,ax;bp计入结果数据 di累计自定义处数据满16位字节进位(自定义处年)
        mov ax,   ;(数据处收入)
        mov es:,ax;(自定义处收入)
        add bx,2         ;(以双字节传送必定+2)
        add bp,2
loop s
        mov ax,    ;(数据处人员)
        mov es:,ax;(自定义处人员)
       
        mov dx,es:   ;(算人均收入)
        mov ax,es:   ;(算人均收入)
        div word ptr es:;(算人均收入)
        mov es:,ax;(自定义处输入人均收入结果)

        add si,2         ;以双字节(dw)传送必定+2
        add di,16          ;di累计自定义处数据满16位字节进位
        pop cx             ;外围循环计数出栈
loop s0
        mov ax,4c00h
        int 21h
code ends
end start

回头再来 发表于 2012-11-11 15:52:11

忘记sp赋值了 不过还好也能正常运行

补充内容 (2012-11-11 15:55):
dubug发现与想法违背 还是要加上 mov sp,2
页: [1]
查看完整版本: 自己做的实验7代码