《計算機接口技術(shù)及應(yīng)用》課件-5.5 尋址方式之寄存器間接尋址和寄存器相對尋址_第1頁
《計算機接口技術(shù)及應(yīng)用》課件-5.5 尋址方式之寄存器間接尋址和寄存器相對尋址_第2頁
《計算機接口技術(shù)及應(yīng)用》課件-5.5 尋址方式之寄存器間接尋址和寄存器相對尋址_第3頁
《計算機接口技術(shù)及應(yīng)用》課件-5.5 尋址方式之寄存器間接尋址和寄存器相對尋址_第4頁
《計算機接口技術(shù)及應(yīng)用》課件-5.5 尋址方式之寄存器間接尋址和寄存器相對尋址_第5頁
已閱讀5頁,還剩17頁未讀, 繼續(xù)免費閱讀

下載本文檔

版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進行舉報或認領(lǐng)

文檔簡介

微機原理及應(yīng)用第五章8086指令系統(tǒng)第五講尋址方式之寄存器間接尋址和寄存器相對尋址下面我們來學習尋址方式中的寄存器間接尋址和寄存器相對尋址尋址方式之寄存器間接尋址和寄存器相對尋址首先來看寄存器間接尋址,寄存器間接尋址還是尋址的內(nèi)存空間,我們將內(nèi)存空間的偏移地址存放在寄存器中,然后將寄存器放到方括號中,這樣得到的尋址方式叫寄存器間接尋址,放到方括號里的寄存器統(tǒng)稱為間址寄存器,間址寄存器只有四種寄存器間接尋址寄存器間接尋址尋址的內(nèi)存空間操作數(shù)的偏移地址(有效地址EA)放在寄存器中,且寄存器必須在方括號里方括號里的寄存器間址寄存器分別是BXBPSI和DI,其他八種寄存器是不能放到方括號里用作寄存器間接尋址的,既然寄存器被放入了方括號里,那么它就要有相應(yīng)的段基址,寄存器間接尋址間址寄存器BXBPSIDI其他八種寄存器不能放到方括號里用作寄存器間接尋址寄存器被放入方括號里要有相應(yīng)的段基址默認情況下,BX,SI,DI的段基址是DS,BP對應(yīng)的段基址是SS,寄存器間接尋址間址寄存器BXBPSIDI其他八種寄存器不能放到方括號里用作寄存器間接尋址寄存器被放入方括號里要有相應(yīng)的段基址DSSS[DS]×10H+[BX]

[DS]×10H+[SI]

[DS]×10H+[DI]相應(yīng)的內(nèi)存單元的物理地址的計算公式是段基址后填0再跟寄存器的值相加寄存器間接尋址間址寄存器BXBPSIDI其他八種寄存器不能放到方括號里用作寄存器間接尋址寄存器被放入方括號里要有相應(yīng)的段基址DS[SS]×10H+[BP]SS了解了寄存器間接尋址的含義,我們來看一下下面幾條指令是否正確首先MOVax,[BX]這條指令判斷下面幾條指令是否正確MOVax,[BX]MOVCL,ES:[DI]MOVAX,[DX]MOVCL,[AX]BX作為間址寄存器被放在了方括號中,所以這條指令是寄存器間接尋址,BX作為4個間址寄存器之一是可以被放入方括號中的,所以這條指令是正確的,MOVax,[BX]寄存器間接尋址,BX作為4個間址寄存器之一是可以被放入方括號中?×判斷下面幾條指令是否正確再看下一條,MOVCL,ES:[DI],這里方括號前面的ES加冒號是段超越前綴,可以將內(nèi)存單元的段基址修改為ES,內(nèi)存單元的偏移地址是DI的內(nèi)容判斷下面幾條指令是否正確MOVax,[BX]MOVCL,ES:[DI]段超越前綴,將內(nèi)存單元的段基址改為ES,內(nèi)存單元的偏移地址是DI的內(nèi)容再來下一條,MOVAX,[DX],這條指令將DX放入了方括號里面是不對的,DX不是間址寄存器不能放入方括號中,所以這條指令是錯誤的,判斷下面幾條指令是否正確MOVax,[BX]MOVCL,ES:[DI]MOVAX,[DX]DX不是間址寄存器不能放入方括號中下一條是MOVCL,[AX],同理,由于AX不是間址寄存器所以也不能放入方括號中,這條指令也是錯誤的判斷下面幾條指令是否正確MOVax,[BX]MOVCL,ES:[DI]MOVAX,[DX]MOVCL,[AX]AX不是間址寄存器不能放入[]中下面來舉一個具體的例子,比如這條指令MOVax逗號SI,SI作為間址寄存器用來存放內(nèi)存單元的偏移地址,它的值是1200h,所以內(nèi)存單元的偏移地址是1200h,在默認情況下,SI的段基址是DS,DS的值是6000h,那我們可以基于SI和DS的值,計算內(nèi)存單元的物理地址為61200hMOVAX,[SI]SI1200H60000H+1200H61200HDS6000H61200h這個單元存放的是44h,它的下一個單元61201h里面存放的是33h,通過move指令,將3344h這個數(shù)據(jù)傳送到了ax中,44H33H…數(shù)據(jù)段33H44HAX61200HMOVAX,[SI]61201H這條指令執(zhí)行完畢時,Ax的內(nèi)容是3344h,其中33h存放到了ah中,44h存放到了al中44H33H…數(shù)據(jù)段33H44HAX61200HMOVAX,[SI]61201H指令執(zhí)行完畢時,Ax的內(nèi)容是3344h33h存放到ah中,44h存放到al中再來看寄存器相對尋址,在寄存器間接尋址的基礎(chǔ)上再加上一個位移量就變成了寄存器相對尋址,所以在寄存器相對尋址中,內(nèi)存單元的偏移地址由間址寄存器的值加上八位或16位的位移量來獲得同樣,這里的間址寄存器只能時BX,BP和SI,DI當間址寄存器為BX,SI和DI時,默認的段寄存器是ds當間址寄存器為BP時,默認的段寄存器是ss寄存器相對尋址常用于存取表格或者一維數(shù)據(jù)中的內(nèi)容我們可以把位移量看成表格的起始地址,把間址寄存器的內(nèi)容看成查詢表格時的下標或者把間址寄存器的內(nèi)容看成是表格的起始地址,把位移量看成查詢表格時的下標寄存器相對尋址在寄存器間接尋址基礎(chǔ)再加一個位移量內(nèi)存單元的偏移地址由間址寄存器的值加上八位或16位的位移量獲得寄存器相對尋址同樣,這里的間址寄存器只能時BX,BP和SI,DI,間址寄存器BXBPSIDI寄存器相對尋址當間址寄存器為BX,SI和DI時,默認的段寄存器是ds,當間址寄存器為BP時,默認的段寄存器是ssBXBPSIDIDSSS寄存器相對尋址MOVAX,[BX+8]MOVCX,TABLE[SI]MOVAX,[BP]VAR默認段寄存器為SS寄存器相對尋址常用于存取表格或者一維數(shù)據(jù)中的內(nèi)容,我們可以把位移量看成表格的起始地址,把間址寄存器的內(nèi)容看成查詢表格時的下標。寄存器相對尋址存取表格或一維數(shù)據(jù)中的內(nèi)容表格的起始地址查詢表格時的下標位移量間址寄存器的內(nèi)容或者把間址寄存器的內(nèi)容看成是表格的起始地址,把位移量看成查詢表格時的下標寄存器相對尋址存取表格或一維數(shù)據(jù)中的內(nèi)容表格的起始地址查詢表格時的下標位移量間址寄存器的內(nèi)容位移量可以放到方括號中,用一個加號跟間址寄存器連接或者放到方括號的前邊或者后邊都可以位移量放方括號中,用一個加號跟間址寄存器連接放方括號的前邊或者后邊寄存器相對尋址下面我們再舉一個具體的例子,比如說moveax,data[bx]這條指令,在方括號的內(nèi)部時間址寄存器,在方括號的外面還有位移量data,所以我們知道這是寄存器相對尋址,此時,我們要尋址的內(nèi)存單元的偏移地址就是data與bx之和,Bx的值是1000h,data是2A00h,那么我們可以計算出來內(nèi)存單元的偏移地址是3A00h,它默認的段基址是ds,我們拿ds和偏移地址一起計算出物理地址是63A00h,這條指令中目標操作數(shù)是AX,因此我們需要傳送16位的數(shù)據(jù)16位的數(shù)據(jù)來自于物理地址是63A00h的單元和63A01h的單元也就是5566h其中55h會存放到ah中,66h會存放到al中BX1000H60000H+1200H63A00HDS6000Hmoveax,data[bx]DATA2A00H2A00H這條指令中目標操作數(shù)是AX,因此我們需要傳送16位的數(shù)據(jù)。16

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負責。
  • 6. 下載文件中如有侵權(quán)或不適當內(nèi)容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論