實驗7 定址方式在結構化資料訪問總的應用

2021-08-07 23:45:11 字數 1639 閱讀 7481

做本實驗時明顯感覺暫存器不夠用,所以要對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...