七種定址方式 直接定址方式

2021-08-14 21:38:53 字數 862 閱讀 4708

指令所要的運算元存放在記憶體中,在指令中直接給出該運算元的有效位址,這種定址方式為直接定址方式。

在通常情況下,運算元存放在資料段中,所以,其實體地址將由資料段暫存器ds和指令中給出的有效位址直接形成,但如果使用段超越字首,那麼,運算元可存放在其它段。

例:假設有指令:mov bx, [1234h],在執行時,(ds)=2000h,記憶體單元21234h的值為5213h。問該指令執行後,bx的值是什麼?

解:根據直接定址方式的定址規則,把該指令的具體執行過程用下圖來表示。

從圖中,可看出執行該指令要分三部分:

取單元21234h的值5213h,並按「高高低低」的原則存入暫存器bx中。

所以,在執行該指令後,bx的值就為5213h。

由於資料段的段暫存器預設為ds,如果要指定訪問其它段內的資料,可在指令中用段字首的方式顯式地書寫出來。

下面指令的目標運算元就是帶有段字首的直接定址方式。

mov es:[1000h], ax

直接定址方式常用於處理記憶體單元的資料,其運算元是記憶體變數的值,該定址方式可在64k位元組的段內進行定址。

注意:立即定址方式和直接定址方式的書寫格式的不同,直接定址的位址要寫在括號「[」,「]」內。在程式中,直接位址通常用記憶體變數名來表示,如:mov bx, varw,其中,varw是記憶體字變數。

試比較下列指令中源運算元的定址方式(varw是記憶體字變數):

mov ax, 1234h mov ax, [1234h] ;前者是立即定址,後者是直接定址 

mov ax, varw mov ax, [varw] ;兩者是等效的,均為直接定址

七種定址方式

共7種定址方式 1.立即定址方式 立即數包含在指令中,作為指令的一部分。如 mov ax 1234h 2.暫存器定址方式 運算元在cpu內部的暫存器中,指令指定暫存器號 16位運算元,暫存器可以是 ax,bx,cx,dx,si,di,sp和bp 8位運算元,暫存器可以是 al,ah,bl,bh,cl...

七種定址方式 基址加變址定址方式

運算元在儲存器中,其有效位址是乙個基址暫存器 bx bp 和乙個變址暫存器 si di 的內容之和。其有效位址的計算公式如公式所示。在不使用段超越字首的情況下,規定 如果有效位址中含有bp,則預設的段暫存器為ss 否則,預設的段暫存器為ds。例 假設指令 mov bx,bx si 在執行時,ds 1...

七種定址方式 暫存器間接定址方式

運算元在儲存器中,運算元的有效位址用si di bx和bp等四個暫存器之一來指定,稱這種定址方式為暫存器間接定址方式。該定址方式實體地址的計算方法如下 暫存器間接定址方式讀取儲存單元的原理如圖所示。在不使用段超越字首的情況下,有下列規定 若有效位址用si di和bx等之一來指定,則其預設的段暫存器為...