王爽《組合語言》實驗7 結構化資料訪問 解答

2021-06-11 19:29:14 字數 1212 閱讀 1367

直接看注釋應該沒問題:

assume cs:codesg,ds:data,es:table

;書上的資料太多,我這裡只弄了6組資料,不影響程式的執行

data segment

db '1975','1976','1977','1978','1979','1980'

dd 120,1522,12457,152487,965000,999999

dw 2,10,19,500,7850,12000

data ends

table segment

db 6 dup ('year summ em ?? ')

table ends

codesg segment

start: mov ax,data

mov ds,ax

mov ax,table

mov es,ax

mov bx,0 ;定義第一和第二組資料的遞增量,因為他們的資料都是占用4個位元組

mov di,0 ;定義第三個資料的遞增量

mov si,0 ;定義table的遞增量

mov cx,6

s: mov al,[bx] ;新增年份

mov es:[si],al

mov al,[bx+1]

mov es:[si+1],al

mov al,[bx+2]

mov es:[si+2],al

mov al,[bx+3]

mov es:[si+3],al

mov ax,[bx+24] ;新增收入,24是6個資料乘乙個資料佔4個位元組算得

mov es:[si+5],ax

mov ax,[bx+24+2]

mov es:[si+5+2],ax

mov ax,[di+48] ;新增雇員,48是前面兩組資料佔的位元組數。

mov es:[si+10],ax

mov dx,[bx+24+2] ;計算人均收入

mov ax,[bx+24]

div word ptr [di+48]

mov es:[si+13],ax

add bx,4 ;增加偏移量

add di,2

add si,16

loop s

mov ax,4c00h

int 21h

codesg ends

end start

王爽 組合語言 實驗7

assume cs codesg,ds data ss stack data segment db 1975 1976 1977 1978 1979 1980 1981 1982 db 1983 1984 1985 1986 1987 1988 1989 1990 db 1991 1992 1993...

王爽《組合語言》實驗7

因為實驗7中的資料太多,我就對其縮減了一些。因為其中用到很多的暫存器,但是每個暫存器都有限制規則,所以要精心分配暫存器。最先分配的是兩個段暫存器,data用ds存放,table用es存放。然後要確定迴圈使用的暫存器cx 乙個指向table位址的暫存器bp,乙個指向年份和收入的暫存器di,乙個指向雇員...

王爽 組合語言 實驗10 1

assume cs code,ds data data segment db welcome to masm 0 data ends code segment start mov dh,8 行號 mov dl,3 列號 mov cl,2 顏色 mov ax,data mov ds,ax mov si...