您好,登錄后才能下訂單哦!
存儲器操作數有哪幾種尋址方式?很多新手對此不是很清楚,為了幫助大家解決這個難題,下面小編將為大家詳細講解,有這方面需求的人可以來學習下,希望你能有所收獲。
存儲器操作數的尋址方式有:直接尋址、寄存器間接尋址、寄存器相對尋址、基址變址尋址、基址變址相對尋址。
存儲器操作數的尋址方式
TIPS:
?指令操作的對象在內存中,表現形式為[ ]
? 指令給出運算對象在內存某個邏輯段中的偏移地址:[偏移地址]
?邏輯段的段基地址通過默認或重設方式給出
?存儲器操作數的字長本身并不確定,其字長取決于另一個寄存器操作數,或通過其他方式指定字長
1. 直接尋址
※ 指令直接給出操作數的偏移地址
eg:MOV AX,[1200H] ;將數據段1200H位置的內容存放給AL中,1201H的內容存放給AH中
※ 直接尋址方式下,操作數默認在數據段,但允許段重設,即由指令給出所在邏輯段
eg:MOV AX,ES:[1200H] ;將附加段1200 H位置的內容存放給AL中,1201H的內容存放給AH中
※個人理解:
加上[ ]就表示需要到寄存器以外的地方尋找地址了,此時應首先考慮在存儲器的哪個段,然后直接找這個段中所給出的位置。一般來說默認在數據段。
2. 寄存器間接尋址
※ 操作數存放在內存中,數據在內存中的偏移地址為方括號[ ]中通用寄存器的內容。
※ 常用四個通用寄存器(這四個寄存器又叫做間址寄存器,分別是BX、BP、SI、DI),可用于存放數據的偏移地址。(間址寄存器又分為基址寄存器BX、BP和變址寄存器SI、DI)
※ 間接尋址的一般格式:
eg:MOV BX,1200H ;這里是立即尋址,即將操作數直接送給BX,此時BX=1200H
MOV AX,[BX] ;這里是[BX]=[1200H],所以就轉換成了直接尋址,只是多了BX這個中間代理,此時將代碼段中的偏移地址為1200H的單元內容賦值給AL,1201H單元的內容賦值給AH
※間接尋址就是由寄存器間接給出操作數的偏移地址
※操作數的段地址(操作數處于哪一個段)取決于選擇哪一個間址寄存器(可以段重設)
※ BX、SI、DI默認在數據段;BP默認在堆棧段
※ 個人理解:
我們可以通過選擇的間址寄存器找到對應段,然后通過段的偏移量找到物理位置。當間接尋址時,我們就可以找到源操作數的物理位置。
物理位置=段基地址*16+偏移地址。
3. 寄存器相對尋址
※ 操作數的偏移地址為寄存器的內容加上一個位移量
※eg:MOV AX,2000H ;立即尋址,將2000H賦給AX
MOV DS,AX ;DS從AX這里獲得段首地址
MOV BX,1200H ;立即尋址,將1200H賦給BX
MOV AL,[BX]5 ;相對尋址,將位于段基地址為2000H,偏移量為1200H+5的內容賦給AL
※ 相對尋址主要用于一維數組的操作
※ 常將位移量作為表頭地址,間址寄存器的值作為表內相對地址(使用間會有常數,會有不便)
※ 個人理解:
相對尋址就是在間接尋址的基礎上增加了一個位移常量,因此判別是間接尋址還是相對尋址的方法就是:看間址寄存器前后有沒有常量,有常量的就是相對尋址
4. 基址變址尋址
※ 操作數的偏移地址為:
一個基址寄存器(BX、BP)的內容+一個變址寄存器(SI、DI)的內容
※ 其中BX默認在數據段BP默認在堆棧段
※ 操作數的段地址由選擇的基址寄存器決定
※ 同相對尋址一樣,主要用于一維數組的操作
※eg:MOV SI,1100H ;立即尋址,1100H賦值給SI
MOV BX,SI ;將1100H賦值給BX
MOV AX,[SI+BX] ;源操作數的物理地址=數據段段基地址*16+1100H+1100H
※ 個人理解:
基址變址尋址就是先找到基址寄存器所在的段首地址,再加上基址寄存器偏移量和變址寄存器的偏移量。它所存在的特點是[BX][BP]兩者必有其一,[SI][DI]兩者必有其一
5. 基址變址相對尋址
※ 操作數的偏移地址為:
基址寄存器+變址寄存器+位移量
※ 操作數的段地址由選擇的基址寄存器決定
※基址變址相對尋址方式主要用于二維數組的操作
※eg:MOV DI,1100H ;立即尋址,將1100H賦給DI
MOV BP,DI ;將1100H賦給BP
MOV AL,[BP][DI]5 ;BP說明操作數在堆棧段,其物理地址=堆棧段段基地址*16+1100H+1100H+5
※個人理解:
基址變址相對尋址只是在基址變址的基礎上增加了一個常數偏移量,其源操作數的物理地址便可以由此把握。
看完上述內容是否對您有幫助呢?如果還想對相關知識有進一步的了解或閱讀更多相關文章,請關注億速云行業資訊頻道,感謝您對億速云的支持。
免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。