做本實驗時明顯感覺暫存器不夠用,所以要對bx,si,di,bp的使用仔細閱讀,本題比較瑣碎,做本題更需要的是耐心,耐心,耐心。
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,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 11452,14430,15257,17800
data ends
table segment
db 21 dup ('year summ ne ?? ')
table ends
code segment
start:
mov ax, data
mov ds, ax ;ds:bx, data
mov bx, 0
mov ax, table
mov es, ax ;es:bx, table
mov si, 0
mov di, 0
mov bp, 0
mov cx, 21
s: mov ax, ds:[bx+si]
mov dx, ds:[bx+si+2]
mov es:[bx+di], ax
mov es:[bx+di+2], dx ;move year to table
mov ax, ds:[bx+si+21*4]
mov dx, ds:[bx+si+21*4+2]
mov es:[bx+di+5h], ax
mov es:[bx+di+7h], dx ;move income to table
mov ax, ds:[bp+21*4+21*4]
mov es:[bx+di+0ah], ax ;move num to table
mov ax, es:[bx+di+5h]
mov dx, es:[bx+di+7h]
div word ptr es:[bx+di+0ah]
mov es:[bx+di+0dh], ax
add si, 4h
add di, 10h
add bp, 2
loop s
mov ax, 4c00h
int 21h
code ends
end start
實驗結果:
實驗7 定址方式在結構化資料訪問中的應用
注意資料一開始是怎麼存放的,年份 字串 是順序存放,其他資料均是有按照高低位的規則存放,所以放入table中也相應地存放就好了 不用反過來 例 收入的第乙個資料 16 10 00 00 00。以上表示21個年份的21個字串 dd 16,22,382,1356,2390,8000,16000,2448...
實驗七 定址方式在結構化資料訪問中的應用
assume cs codesg,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...
重做實驗七 定址方式在結構化資料訪問中的應用
先處理第一行所有資料 實驗七 定址方式在結構化資料訪問中的應用 程式設計 將data段中的資料 按照如下格式寫到table段中,並計算21年中的人均收入 取整 結果也按照下面的格式儲存在table段中 assume cs code,ds data,ss stack data segment db 1...