第四章 尋址方式_第1頁(yè)
第四章 尋址方式_第2頁(yè)
第四章 尋址方式_第3頁(yè)
第四章 尋址方式_第4頁(yè)
第四章 尋址方式_第5頁(yè)
已閱讀5頁(yè),還剩11頁(yè)未讀 繼續(xù)免費(fèi)閱讀

下載本文檔

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

文檔簡(jiǎn)介

1、第四章第四章 尋址方式尋址方式6.1 6.1 數(shù)據(jù)類型數(shù)據(jù)類型數(shù)據(jù)的類型有數(shù)值數(shù)據(jù)和非數(shù)值數(shù)據(jù)?;緮?shù)據(jù)類型字節(jié)字節(jié)8位高序字節(jié)字16位字節(jié)雙字32位字節(jié)四字64位低序字節(jié)字節(jié)字節(jié)字節(jié)字節(jié)字節(jié)字節(jié)字節(jié)字節(jié)字節(jié)字節(jié)高序字低序字高序雙字低序雙字字節(jié)、字、雙字等-128-+127;-32768-+32767 單精度:32位(1位符號(hào),8位指數(shù),23位有效精度位,表示范圍1038) 雙精度:34位(1位符號(hào),10位指數(shù),53位有效精度位,表示范圍10308) 擴(kuò)展精度:80位(1位符號(hào),15位指數(shù),64位有效精度位,表示范圍104932) 參見艾德才教材P796 62 2 尋址方式尋址方式 尋址方式是

2、指微處理器獲取操作數(shù)的方式。一條指令必須說(shuō)明兩個(gè)問(wèn)題;一是要說(shuō)明這條指令要進(jìn)行什么操作,二是要說(shuō)明這條指令的操作數(shù)位于何地。一條指令可以對(duì)零個(gè)或多個(gè)操作數(shù)操作。零個(gè)操作數(shù)的指令的例子是NOP指令(即沒有數(shù))。操作數(shù)可以位于下列位置處:(1)指令本身有操作數(shù);即立即操作數(shù)(2)操作數(shù)在寄存器中;(3)操作數(shù)在存儲(chǔ)器中 (4)操作數(shù)在/端口 1立即操作數(shù)尋址立即操作數(shù)尋址 是說(shuō)指令本身帶的數(shù)據(jù)作為一個(gè)操作數(shù)用,即指令所用的操作數(shù)是指令自身所擁有的,像單操作數(shù)指令或兩操作數(shù)指令即是這類指令。凡指令本身所擁有的操作數(shù)就稱之為立即操作數(shù)。 例如, MOV AX,1999H ;這條指令的功能是將16進(jìn)制的

3、立即操作數(shù)1999傳送到AX寄存器。由于立即操作數(shù)1999是16位的,其中存放在代碼段的高地址字節(jié)中的內(nèi)容被傳送到AH寄存器,低地址字節(jié)中的內(nèi)容被傳送到AL寄存器,如圖所示。存儲(chǔ)器操作碼19H19H99H99HAHAL代碼段指令1350H1351H1380H1381H 將操作數(shù)存放在32位通用寄存器中,或存放在16位通用寄存器中,或存放在8位通用寄存器中,并對(duì)操作數(shù)進(jìn)行訪問(wèn)操作,稱之為寄存器操作數(shù)尋址。指令 MOV EDX,EAX ; MOV EDX , EAX 源操作數(shù)目標(biāo)操作數(shù)EAXEBXECXEDX 1 3 9 A 1 3 9 A D 4 0 7 D 4 0 71 1 0 02 2 3

4、3 9 9 9 9 9 9 9 9(1)直接尋址)直接尋址 直接尋址是一種很簡(jiǎn)單的尋址方式,雖然操作數(shù)存放在存儲(chǔ)器內(nèi),但在這種直接尋址方式下,操作數(shù)的有效地址是由指令直接給出。例如: MOV EAX, LISTT 這條指令的功能是,將地址LISTT處4個(gè)連續(xù)字節(jié)地址中的32位操作數(shù)傳送到寄存器EAX內(nèi)。LISTT 是存儲(chǔ)器中存儲(chǔ)單元的符號(hào)地址,LISTT的實(shí)際地址是1230H這個(gè)十六進(jìn)制地址 1230H1231H1232H1233H 806A38BC 8 0 3 8 6 A B CEAX存儲(chǔ)器 寄存器間接尋址這種尋址方式,可以對(duì)存儲(chǔ)器內(nèi)的任何寄存器間接尋址這種尋址方式,可以對(duì)存儲(chǔ)器內(nèi)的任何存儲(chǔ)

5、單元的數(shù)據(jù)進(jìn)行尋址,只是要借助于在存儲(chǔ)單元的數(shù)據(jù)進(jìn)行尋址,只是要借助于在BPBP,BXBX,DIDI和和SISI這些這些寄存器內(nèi)保存的偏移地址。寄存器內(nèi)保存的偏移地址。 例,如果寄存器例,如果寄存器BXBX的內(nèi)容是的內(nèi)容是1000H1000H,在執(zhí)行,在執(zhí)行MOV AXMOV AX,BXBX指令指令之后,地址之后,地址1000H1000H處的字內(nèi)容被傳送到處的字內(nèi)容被傳送到AXAX寄存器中,如圖所示。寄存器中,如圖所示。1000H1001H1002H1003H89A335D4存儲(chǔ)器 A3 D4 10 00EAXEBX 所謂基地址加變址尋址,就是操作數(shù)位于所選的存儲(chǔ)器段內(nèi),操作數(shù)的有效地址由一個(gè)

6、基地址寄存器的內(nèi)容再加上一個(gè)變址寄存器的內(nèi)容構(gòu)成。 通常,在基地址寄存器內(nèi)保存的是位于存儲(chǔ)器內(nèi)數(shù)組的起始地址,而在變址寄存器內(nèi)保存的是數(shù)組元素的相對(duì)位置。每次BP寄存器在對(duì)存儲(chǔ)器內(nèi)的數(shù)組進(jìn)行尋址時(shí),由BP寄存器和堆棧段寄存器兩者生成有效地址。 例如:MOV EDX ,EAX + EBX 存儲(chǔ)器+ +EAXEBXECXEDXESPEBPESIEDI1 00 AA B8 92 00 08 9100AH0020H102AH102AH1029H102BH1028H102CH1027H1026HA B 寄存器相對(duì)尋址類似于基址加變址尋址,只不過(guò)是在寄存器相對(duì)尋址方式下,在變址寄存器或基地址寄存器的內(nèi)容中

7、,加上了一個(gè)位移量,而形成了操作數(shù)的有效地址的值,然后是用這個(gè)有效地址的值,對(duì)存儲(chǔ)器中的操作數(shù)進(jìn)行尋址。 操作數(shù)的有效地址是由基地址或變址寄存器的內(nèi)容再加上一個(gè)8位數(shù)值、16位數(shù)值或32位數(shù)值的位移量組成。 例如:MOV EAX, ECX+1AH 指令是,將數(shù)據(jù)段中由ECX寄存器上的內(nèi)容,再加上1A這個(gè)數(shù)值所形成的操作數(shù)地址中的內(nèi)容傳送至EAX寄存器。 指令 MOV AX,BX+1000H的操作過(guò)程 如圖示2200H2201H2202H2203H99AB45D6存儲(chǔ)器 AB D6 12 00EAXEBX+1000H1200H2200H位移量 相對(duì)基地址加變址尋址類似于基地址加變址尋址,它除了需

8、要加上位移量之外,仍然需要用基地址寄存器和變址寄存器的內(nèi)容來(lái)形成操作數(shù)的地址。也就是說(shuō),它是用基址寄存器和變址寄存器上的內(nèi)容再加上位移量,從而形成操作數(shù)在存儲(chǔ)器中的有效地址。這種尋址方式常被用來(lái)對(duì)存儲(chǔ)器內(nèi)的二維數(shù)組的數(shù)組元素進(jìn)行尋址。例如: MOV EDX ,EBX+ECX+200H 圖中以指令MOV EAX,BX+SI+100H執(zhí)行過(guò)程為例,展示出用相對(duì)基址加變址尋址方式進(jìn)行尋址的操作過(guò)程。存儲(chǔ)器+ +EAXEBXECXEDXESPEBPESIEDI1 00 A2 00 05 9100AH0020H112AH112AH1129H112BH1128H112CH1127H1126H2 B+ +位

9、移量0100H102AH5 92 B 這種尋址方式是80386Pentium所特有的,在對(duì)存儲(chǔ)器進(jìn)行尋址操作時(shí),要用到兩個(gè)寄存器,第1個(gè)是基地址寄存器,第2個(gè)是變址寄存器,它們均是32位的寄存器。 這種尋址,只有第2個(gè)變址寄存器才會(huì)與比例因子相乘,變址寄存器內(nèi)容乘以比例因子后,再加上位移量即可形成操作數(shù)的32位的有效地址。 比例因子可以是1、2、4或8。比例因子為1是默認(rèn)的,例如,指令MOV AL,EBX+ECX 就沒有在變址寄存器ECX前面顯式地乘以1。 比例因子為2用來(lái)對(duì)字?jǐn)?shù)組中的數(shù)組元素進(jìn)行尋址操作的 比例因子為4用來(lái)對(duì)雙字?jǐn)?shù)組中的數(shù)組元素進(jìn)行尋址, 例如: MOV EAX ,EBX+4

10、*ECX 比例因子為8用來(lái)對(duì)四字?jǐn)?shù)組中的數(shù)組元素進(jìn)行尋址。 這種尋址方式是在前面所述帶比例因子的變址尋址方式的基礎(chǔ)上,再加上一個(gè)位移量就構(gòu)成了這種尋址方式。例如: MOV EAX + 2 * EBX + 100H , DX 這條指令的功能是將16位寄存器DX之內(nèi)容存儲(chǔ)到,由EAX內(nèi)容加上EBX寄存器內(nèi)容的2倍,再加上位移量100H而生成的存儲(chǔ)器地址。 在指令的操作碼后面有mod R/M字節(jié)時(shí),是最常用的一種指令格式,該字節(jié)為用戶提供了靈活的尋址方式。存儲(chǔ)器中操作數(shù)由mod R/M字節(jié)指定。被選中段內(nèi)偏移量是位移量、基地址寄存器內(nèi)容、一個(gè)變址寄存器的內(nèi)容乘比例因子之和。mod R/M字節(jié)給出了有效地址的計(jì)算過(guò)程公式; 有效地址有效地址 段地址基地址段地址基地址+ (+ (變址變址 比

溫馨提示

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

評(píng)論

0/150

提交評(píng)論