8.1,提出兩個(gè)問題
1,處理的數(shù)據(jù)在什么地方?
2,處理的數(shù)據(jù)有多長(zhǎng)?
8.2,BX,BP,SI,DI
[...]這種方式之前我們已經(jīng)使用過很多次了,在這里詳細(xì)的闡述其使用規(guī)則。
只能通過這幾種方式:
[BX\SI\DI\BP]
[BX\BP\SI\DI
+idata]當(dāng)然還有其他的形式,但是本質(zhì)還是這個(gè)
[BX\BP+SI\DI]
[BX\BP+SI\DI+idata]
需要注意的是,在不加段前綴的情況下,[...]出現(xiàn)BP則默認(rèn)以(SS)為段地址,其他的都默認(rèn)(DS)為段地址。
8.3,匯編中數(shù)據(jù)位置的表達(dá)
立即數(shù)方式
比如 mov ax,1
寄存器方式
mov ax,bx
SA+EA方式
mov ax,[BX+DI]
段地址也可以顯示給出,否則bx則默認(rèn)ds為段地址,bp默認(rèn)為ss為段地址。
8.4,尋址方式
圖圖
8.5,處理數(shù)據(jù)的長(zhǎng)度是多少?
有寄存器,則按照寄存器的長(zhǎng)度來算。
沒有寄存器,請(qǐng)用X ptr來指明,否則會(huì)出問題。
有些指令是默認(rèn)長(zhǎng)度的,比如PUSH和POP。
8.6,尋址方式的綜合運(yùn)用
[BX+idata+SI]這種相對(duì)基址變址,可以模擬結(jié)構(gòu)體的訪問。BX指向結(jié)構(gòu)起始位置,idata指向數(shù)據(jù)項(xiàng)位置,SI指向數(shù)據(jù)項(xiàng)具體內(nèi)容的下標(biāo)??梢詫懗蒣BX].idata[SI]。
8.7,div指令
8.8,偽指令dd
dd表示開辟雙字空間。
8.9,dup
數(shù)據(jù)類型 重復(fù)次數(shù) dup (需要重復(fù)的數(shù)據(jù),...)
如
db 3 dup (1,2,3)那么內(nèi)存中是1,2,3,1,2,3,1,2,3