溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務(wù)條款》

存儲器操作數(shù)有哪幾種尋址方式

發(fā)布時間:2020-07-30 10:48:55 來源:億速云 閱讀:1313 作者:Leah 欄目:互聯(lián)網(wǎng)科技

存儲器操作數(shù)有哪幾種尋址方式?很多新手對此不是很清楚,為了幫助大家解決這個難題,下面小編將為大家詳細講解,有這方面需求的人可以來學(xué)習(xí)下,希望你能有所收獲。

存儲器操作數(shù)的尋址方式有:直接尋址、寄存器間接尋址、寄存器相對尋址、基址變址尋址、基址變址相對尋址。

存儲器操作數(shù)的尋址方式

TIPS:

?指令操作的對象在內(nèi)存中,表現(xiàn)形式為[ ]

? 指令給出運算對象在內(nèi)存某個邏輯段中的偏移地址:[偏移地址]

?邏輯段的段基地址通過默認重設(shè)方式給出

?存儲器操作數(shù)的字長本身并不確定,其字長取決于另一個寄存器操作數(shù),或通過其他方式指定字長

1. 直接尋址

指令直接給出操作數(shù)的偏移地址

eg:MOV AX,[1200H]    ;將數(shù)據(jù)段1200H位置的內(nèi)容存放給AL中,1201H的內(nèi)容存放給AH中

直接尋址方式下,操作數(shù)默認在數(shù)據(jù)段,但允許段重設(shè),即由指令給出所在邏輯段

eg:MOV AX,ES:[1200H]   ;將附加段1200 H位置的內(nèi)容存放給AL中,1201H的內(nèi)容存放給AH中

個人理解

加上[ ]就表示需要到寄存器以外的地方尋找地址了,此時應(yīng)首先考慮在存儲器的哪個段,然后直接找這個段中所給出的位置。一般來說默認在數(shù)據(jù)段。

2. 寄存器間接尋址

操作數(shù)存放在內(nèi)存中,數(shù)據(jù)在內(nèi)存中的偏移地址為方括號[ ]中通用寄存器的內(nèi)容。

常用四個通用寄存器(這四個寄存器又叫做間址寄存器,分別是BX、BP、SI、DI),可用于存放數(shù)據(jù)的偏移地址。(間址寄存器又分為基址寄存器BX、BP和變址寄存器SI、DI)

間接尋址的一般格式

eg:MOV BX,1200H    ;這里是立即尋址,即將操作數(shù)直接送給BX,此時BX=1200H

MOV AX,[BX]  ;這里是[BX]=[1200H],所以就轉(zhuǎn)換成了直接尋址,只是多了BX這個中間代理,此時將代碼段中的偏移地址為1200H的單元內(nèi)容賦值給AL,1201H單元的內(nèi)容賦值給AH

間接尋址就是由寄存器間接給出操作數(shù)的偏移地址

操作數(shù)的段地址(操作數(shù)處于哪一個段)取決于選擇哪一個間址寄存器(可以段重設(shè))

BX、SI、DI默認在數(shù)據(jù)段;BP默認在堆棧段

個人理解

我們可以通過選擇的間址寄存器找到對應(yīng)段,然后通過段的偏移量找到物理位置。當(dāng)間接尋址時,我們就可以找到源操作數(shù)的物理位置。

物理位置=段基地址*16+偏移地址。

3. 寄存器相對尋址

操作數(shù)的偏移地址為寄存器的內(nèi)容加上一個位移量

eg:MOV AX,2000H     ;立即尋址,將2000H賦給AX

MOV DS,AX        ;DS從AX這里獲得段首地址

MOV BX,1200H     ;立即尋址,將1200H賦給BX

MOV AL,[BX]5       ;相對尋址,將位于段基地址為2000H,偏移量為1200H+5的內(nèi)容賦給AL

相對尋址主要用于一維數(shù)組的操作

常將位移量作為表頭地址,間址寄存器的值作為表內(nèi)相對地址(使用間會有常數(shù),會有不便)

個人理解

相對尋址就是在間接尋址的基礎(chǔ)上增加了一個位移常量,因此判別是間接尋址還是相對尋址的方法就是:看間址寄存器前后有沒有常量,有常量的就是相對尋址

4. 基址變址尋址

操作數(shù)的偏移地址為

一個基址寄存器(BX、BP)的內(nèi)容+一個變址寄存器(SI、DI)的內(nèi)容

其中BX默認在數(shù)據(jù)段BP默認在堆棧段

操作數(shù)的段地址由選擇的基址寄存器決定

同相對尋址一樣,主要用于一維數(shù)組的操作

eg:MOV SI,1100H   ;立即尋址,1100H賦值給SI

MOV BX,SI       ;將1100H賦值給BX

MOV AX,[SI+BX]  ;源操作數(shù)的物理地址=數(shù)據(jù)段段基地址*16+1100H+1100H

個人理解

基址變址尋址就是先找到基址寄存器所在的段首地址,再加上基址寄存器偏移量和變址寄存器的偏移量。它所存在的特點是[BX][BP]兩者必有其一,[SI][DI]兩者必有其一

5. 基址變址相對尋址

操作數(shù)的偏移地址為

基址寄存器+變址寄存器+位移量

操作數(shù)的段地址由選擇的基址寄存器決定

基址變址相對尋址方式主要用于二維數(shù)組的操作

eg:MOV DI,1100H   ;立即尋址,將1100H賦給DI

MOV BP,DI       ;將1100H賦給BP

MOV AL,[BP][DI]5   ;BP說明操作數(shù)在堆棧段,其物理地址=堆棧段段基地址*16+1100H+1100H+5

個人理解

基址變址相對尋址只是在基址變址的基礎(chǔ)上增加了一個常數(shù)偏移量,其源操作數(shù)的物理地址便可以由此把握。

看完上述內(nèi)容是否對您有幫助呢?如果還想對相關(guān)知識有進一步的了解或閱讀更多相關(guān)文章,請關(guān)注億速云行業(yè)資訊頻道,感謝您對億速云的支持。

向AI問一下細節(jié)

免責(zé)聲明:本站發(fā)布的內(nèi)容(圖片、視頻和文字)以原創(chuàng)、轉(zhuǎn)載和分享為主,文章觀點不代表本網(wǎng)站立場,如果涉及侵權(quán)請聯(lián)系站長郵箱:is@yisu.com進行舉報,并提供相關(guān)證據(jù),一經(jīng)查實,將立刻刪除涉嫌侵權(quán)內(nèi)容。

AI