1. 程式人生 > >王爽.彙編.第三版.實驗七.答案

王爽.彙編.第三版.實驗七.答案

assume cs:code,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'  
    ;以上是21年的21個字串

    dd 16,22,382,1356,2390,8000,16000,24486,50065
,97479,140417,197514 dd 345980,590827,803530,1183000,1843000,2759000,3753000,4649000,5937000 ;以上是21個表示年收入的字串 dw 3,7,9,13,28,38,130,220,476,778,1001,1442,2258,2793,4037,5635,8226 dw 11542,14430,45257,17800 ;以上是21個僱傭人數 data ends table segment db 21 dup('year summ ne ?? '
) table ends code segment start: mov ax,data mov es,ax ; 資訊來源 mov ax,table mov ds,ax ; 資訊目的地 mov cx,21 mov si,0 ;年份的索引(0-21*4) mov di,0 ;收入 mov bp,0 ;人數 mov bx,0 ;結果索引 computerincome: push cx ;year mov al, es:[si] mov ds:[bx],al mov al,es:[si+1
] mov ds:[bx+1],al mov al,es:[si+2] mov ds:[bx+2],al mov al,es:[si+3] mov ds:[bx+3],al ;income, ready for div, set ax = so low word mov ax,es:[di+84] mov ds:[bx+5], ax ;ready for div, set dx = so high word mov dx,es:[di+86] mov ds:[bx+7], dx ;ne,ready for div, set cx = ne mov cx,es:[bp+168] mov ds:[bx+0ah], cx ;avrage div cx mov ds:[bx+0dh],ax pop cx add si, 4 add di, 4 add bp, 2 add bx, 010h loop computerincome mov ax, 4c00h int 21h code ends end start