8086指令系統的定址方式有哪些

時間 2021-09-02 04:47:44

1樓:匿名使用者

8086指令系統的定址方式主要有立即數定址、暫存器定址、儲存器定址和i/o埠定址。其中,儲存器定址可進一步分為直接定址、暫存器間接定址、暫存器相對定址、基址變址定址、相對基址變址定址;i/o埠指令in和out使用的埠定址方式有直接定址和間接定址。

2樓:匿名使用者

以 mov 指令為例

1. 立即定址方式* —— 運算元在指令中給出

mov al, 5

mov ax, 3064h

* 只能用於src欄位 ? mov 5, al

* src 和 dst的字長一致 ? mov ah, 3064h

2. 暫存器定址方式* —— 運算元在指定的暫存器中

mov ax, bx

mov al, bh

* 位元組暫存器只有 ah al bh bl ch cl dh dl

* src 和 dst的字長一致 mov ah, bx

* cs不能用mov指令改變 mov cs, ax

3. 直接定址方式* —— 有效地址ea由指令直接給出

有效地址ea:運算元的偏移地址

實體地址pa = 16d ? (ds) + ea

例:mov ax, [2000h]

ea=2000h, 假設(ds)=3000h, 那麼(pa)=32000h

例:運算元地址可由變數(符號地址)表示

mov ah, value ( value db 10 )

* 隱含的段為資料段 ds

* 可使用段跨越字首 mov ax, es :[2000h]

* 使用變數時,要注意變數的屬性

value db 10

mov ax, value ;錯誤

mov al, value

mov ax, word ptr value

* 適於處理單個變數

4. 暫存器間接定址方式

* ——ea在基址暫存器(bx/bp) 或變址暫存器(si/di)中

bx, si, di ->(ds)

實體地址 = 16d * (ds) + (bx)

實體地址 = 16d * (ds) + (si)

實體地址 = 16d * (ds) + (di)

bp ->(ss)

實體地址 = 16d * (ss) + (bp)

mov ax, [bx]

pa = 16d *(ds) + (bx)

mov es:[bx] , ax

pa = 16d *(es) + (bx)

mov dx, [bp]

pa = 16d *(ss) + (bp)

暫存器間接定址方式*

* 不允許使用ax、cx、dx存放ea

mov ax, [cx];錯誤

* src 和 dst的字長一致

mov dl, [si] ; [bx]指示一個位元組單元

mov dx, [di] ; [bx]指示一個字單元

* 適於對陣列、字串、**中的資料連續處理

5. 暫存器相對定址方式*

有效地址 = (bx) + 8位或者16或位移量

有效地址 = (bp) + 8位或者16或位移量

有效地址 = (si) + 8位或者16或位移量

有效地址 = (di) + 8位或者16或位移量

例: mov ax, count[si] 或 mov ax, [count+si]

假設(ds)=3000h, (si)=2000h, count=3000h 那麼 pa = 35000h

假設(35000h)=1234h, 那麼 (ax)=1234h

* 適於陣列、字串、**的處理

6. 基址變址定址方式*

有效地址 = (bx) + (si)

有效地址 = (bx) + (di)

有效地址 = (bp) + (si)

有效地址 = (bp) + (di)

mov ax, [bx][di]

pa=(ds)×16d+(bx)+(di)

或 mov ax, [bp+di]

pa=(ss)×16d+(bx)+(di)

mov ax, es:[bx][si]

pa=(es)×16d+(bx)+(si)

* 適於陣列、字串、**的處理

* 必須是一個基址暫存器和一個變址暫存器的組合

mov ax, [bx][bp] ;錯誤

mov ax, [si][di] ;錯誤

7. 相對基址變址定址方式*

有效地址 = (bx) + (si) + 8位或者16或位移量

有效地址 = (bx) + (di) + 8位或者16或位移量

有效地址 = (bp) + (si) + 8位或者16或位移量

有效地址 = (bp) + (di) + 8位或者16或位移量

mov ax, mask[bx][si]

或 mov ax, mask[bx+si]

或 mov ax, [mask+bx+si]

* 適於堆疊處理和陣列處理

3樓:匿名使用者

直接定址和間接定址!

89c51指令系統有哪幾種定址方式

4樓:蘑菇飯資訊

指令——是指定計算機的操作及其運算元或運算元地址的一組編碼字元,可被**處理機理解的基本命令。計算機藉以控制內部各單元及外部各部分協調工作的命令。

指令系統——一臺計算機所能執行的全部操作的指令集合,所有指令的集合便構成了一個指令系統.

所謂定址方式,通常是指某一個cpu指令系統中規定的尋找運算元所在地址的方式,或者說通過什麼的方式找到運算元

存取資料有關的定址方式:立即定址、暫存器定址、直接定址、暫存器間接定址、暫存器相對定址、基址變址定址、相對基址變址定址

與程式控制有關的定址方式:段內直接定址、段間直接定址、段內間接定址、段間間接定址

什麼是定址方式 8086 8088指令系統的定址方式有哪些

易過敏 8086或8088指令的定址方式 計算機對儲存器,暫存器中資料的各種操作需要資料的存放地址,然後進行操作。指令的定址方式就是尋找指令運算元所在地址的方式,對於我們來說,可以確定資料的 和去處 1.立即數定址方式 例 mov ax,41h 這個就是立即數 運算元就是41h 立即數定址不執行匯流...

8086組合語言指令的定址方式有哪幾類

水木年華 主要是立即定址,暫存器定址,直接定址,暫存器間接定址,暫存器相對定址,基址變址定址,相對基址變址,還有隱含定址,i o埠定址,轉移類定址。 可軒 80x8組合語言尋求方式 立即定址 直接定址 暫存器定址 暫存器間接定址 相對定址 變址定址。定址方式舉例如下 mov ax,20b5h 立即定...

某機字長32位,指令單字長,指令系統中具有二地址指令 一地址

鹿蘆路 一地址指令最多有2 20 2 12 1 因為二地址只有操作碼和一個地址,則操作碼是20位,一地址指令為2 20,拿出一個拓展位給零地址則2 20 1,給二地址一個拓展視窗則是2 20 1 2 12 零地址指令最多是2 32 2 24 2 12零地址指令最多則分給分給二地址一個拓展位,假設分給...