《微機(jī)原理與接口技術(shù)(第2版)》第04章尋址方式_第1頁
《微機(jī)原理與接口技術(shù)(第2版)》第04章尋址方式_第2頁
《微機(jī)原理與接口技術(shù)(第2版)》第04章尋址方式_第3頁
《微機(jī)原理與接口技術(shù)(第2版)》第04章尋址方式_第4頁
《微機(jī)原理與接口技術(shù)(第2版)》第04章尋址方式_第5頁
已閱讀5頁,還剩21頁未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

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

文檔簡介

第4章尋址方式本章知識要點(diǎn):

本章以Intel系列微處理器為例,對各種類型數(shù)據(jù)在計算機(jī)內(nèi)的表示形式,常用的數(shù)值類型和格式,各種尋址方式進(jìn)行了詳盡地描述,對8086~Pentium中常用的尋址方式分門別類地進(jìn)行了描述、說明。而且從科學(xué)發(fā)展的角度,特別把16位微處理器中沒有的32位微處理器新增加的32位尋址方式進(jìn)行了介紹,從每一種尋址方式操作中,可以領(lǐng)會到微機(jī)硬件是怎樣進(jìn)行操作的。本章內(nèi)容是前面知識的細(xì)化、延伸和提高。

本章重點(diǎn)是各種尋址方式、數(shù)據(jù)在計算機(jī)內(nèi)的表示形式。

4.1數(shù)據(jù)類型

1數(shù)據(jù)在計算機(jī)內(nèi)的表示為對各種數(shù)據(jù)長度操作均給以支持,Pentium在存儲器中存放各種類型數(shù)據(jù)的地址是按字節(jié)進(jìn)行編址。

可以訪問一個字節(jié)地址,可以訪問16位(雙字節(jié))地址,并將這種地址稱之為字可以訪問32位(4字節(jié))地址,也就是雙字地址,同時約定,無論是字地址還是雙字地址,均系指低序位字節(jié)地址。

存儲器中的字節(jié),字,雙字和四倍字是這樣規(guī)定的,如圖所示地址N

字節(jié)7字節(jié)地址N低序字節(jié)07字地址N+1高序字節(jié)15地址N+1031雙字地址N低序字高序字15地址N+2地址N+3四字0153114763低序雙字高序雙字地址N地址N+1地址N+2地址N+3地址N+4地址N+5地址N+6地址N+7

圖展示出了字、雙字和四字在存儲器中各字節(jié)的存放次序。0EH0H01H02H03H04H05H06H07H08H09H0AH0BH0CH0DH在地址06中的4字的內(nèi)容在地址0AH中的雙字內(nèi)容地址0BH中的字內(nèi)容地址09上的字節(jié)內(nèi)容地址06上的字內(nèi)容地址2中的字內(nèi)容地址1中的字內(nèi)容367AFE061FA4230B74CB311.整數(shù):所謂整數(shù)指的是Pentium支持的字節(jié)整數(shù)、字整數(shù)、雙字整數(shù)。它們分別是保存在一個8位字節(jié)內(nèi)、或一個16位的字之內(nèi)、或一個32位雙字內(nèi)的帶符號的二進(jìn)制數(shù)。雙字整數(shù)1位符號位03131位數(shù)值字整數(shù)15位數(shù)值1位符號位01507字節(jié)整數(shù)7位數(shù)值1位符號位2.無符號整數(shù):無符號整數(shù),實際上就是不帶符號的二進(jìn)制數(shù),它既可以是8個二進(jìn)制位的字節(jié)數(shù),也可以是16個二進(jìn)制位的字操作數(shù),還可以是32個二進(jìn)制位的雙字操作數(shù)。圖中展示出了無符號字節(jié)整數(shù)、無符號字整數(shù)以及無符號雙字整數(shù)的二進(jìn)制表示形式。078位數(shù)值無符號的字節(jié)整數(shù)150無符號的字整數(shù)16位數(shù)值無符號的雙字整數(shù)03132位數(shù)值3.二-十進(jìn)制整數(shù)(BCD整數(shù))

BCD指的是二進(jìn)制編碼的十進(jìn)制數(shù),也就是說用4位二進(jìn)制編碼,來表示十進(jìn)制的從0至9范圍內(nèi)的一位十進(jìn)制數(shù)的方法。非壓縮的十進(jìn)制數(shù)被當(dāng)成不帶符號的字節(jié)存放的,在每一個字節(jié)內(nèi)僅僅存放一位十進(jìn)制數(shù)?!璑0BCD整數(shù)每個字節(jié)僅用4位,用4位二進(jìn)制數(shù)表示十進(jìn)制數(shù)的1位4.壓縮二-十進(jìn)制整數(shù)(壓縮的BCD整數(shù))也是指用二進(jìn)制代碼表示的十進(jìn)制的從0到9的數(shù)?!璑0壓縮的BCD整數(shù)每個字節(jié)內(nèi)的高4位和低4位二進(jìn)制數(shù)分別表示十進(jìn)制數(shù)的1位5.近指針:所謂近指針指的是一個32位的有效地址。近指針是在一個段范圍內(nèi)的一個偏移量。圖中展示出了在Pentium內(nèi)使用的近指針的表示形式。近指針03132位偏移量。6.遠(yuǎn)指針:

所謂遠(yuǎn)指針指的是一個48位的邏輯地址,它是由一個16位的段選擇符和一個32位的偏移量兩部分構(gòu)成03147遠(yuǎn)指針32位偏移量16位選擇符7.位字段所謂位字段是位的相鄰序列,是由連續(xù)的一系列的位組成的,位字段可以從任何一個字中的任何一位開始算起,但最多只能包含32位圖中展示出了在Pentium內(nèi)使用的位字段的表示形式。位字段最多可達(dá)32位8.位串位串是位的相鄰序列,是由連續(xù)的一系列的位組成,位串也可以是從任何一個字節(jié)的任何一個位開始算起,只不過是位串的規(guī)模大的很,一個位串可以擁有232-1位圖中展示出了在Pentium內(nèi)使用的位串的表示形式?!淮疃嗫蛇_(dá)4G位9.字節(jié)串所謂字節(jié)串是字節(jié)、字或雙字的相鄰序列,是由連續(xù)的一系列的字節(jié)、字或雙字組成一種數(shù)據(jù)。圖中展示出了在Pentium內(nèi)使用的字節(jié)串的表示形式?!止?jié)字串最多可達(dá)4GB10.浮點(diǎn)類型浮點(diǎn)數(shù)據(jù)又稱實數(shù),在許多高級語言中經(jīng)常要使用實數(shù)這種數(shù)據(jù)類型。根據(jù)需要浮點(diǎn)數(shù)據(jù)又可以分為單精度、雙精度和擴(kuò)展精度浮點(diǎn)數(shù)。

(1)單精度數(shù)據(jù);全長用32位二進(jìn)制數(shù)表示,其中,位31這一位表示符號位,位30~位23這8位表示的是浮點(diǎn)數(shù)據(jù)的指數(shù),位22~位0這23位表示是浮點(diǎn)數(shù)據(jù)的有效精度位,且被認(rèn)為其精度是24位的。這是由于在這24位的精度內(nèi)包括一個默認(rèn)的隱藏位的緣故,因此只要有效精度位23位就可以表示24位的精度。02331指數(shù)有效數(shù)S22(2)雙精度數(shù)據(jù)全長用64位二進(jìn)制數(shù)表示,其中,位63這一位表示符號位,位62~位53這10位表示的是浮點(diǎn)數(shù)據(jù)的指數(shù),位52~位0這53位表示是浮點(diǎn)數(shù)據(jù)的有效精度。這種雙精度數(shù)據(jù)所能表示的數(shù)據(jù)范圍為10±308

。(3)擴(kuò)展精度數(shù)據(jù)全長用80位二進(jìn)制數(shù)表示,其中,位79這一位表示符號位,位78~位64這15位表示的是浮點(diǎn)數(shù)據(jù)的指數(shù),位63~位0這64位表示是浮點(diǎn)數(shù)據(jù)的有效精度0536352指數(shù)有效數(shù)S指數(shù)有效數(shù)0797863641DS4.2尋址方式

尋址方式是指微處理器獲取操作數(shù)的方式。一條指令必須說明兩個問題;一是要說明這條指令要進(jìn)行什么操作,二是要說明這條指令的操作數(shù)位于何地。一條指令可以對零個或多個操作數(shù)操作。零個操作數(shù)的指令的例子是NOP指令(即沒有數(shù))。操作數(shù)可以位于下列位置處:(1)指令本身有操作數(shù);即立即操作數(shù)(2)操作數(shù)在寄存器中;(3)操作數(shù)在存儲器中(4)操作數(shù)在I/O端口

1.立即操作數(shù)尋址是說指令本身帶的數(shù)據(jù)作為一個操作數(shù)用,即指令所用的操作數(shù)是指令自身所擁有的,像單操作數(shù)指令或兩操作數(shù)指令即是這類指令。凡指令本身所擁有的操作數(shù)就稱之為立即操作數(shù)。例如,MOVAX,1999H;這條指令的功能是將16進(jìn)制的立即操作數(shù)1999傳送到AX寄存器。由于立即操作數(shù)1999是16位的,其中存放在代碼段的高地址字節(jié)中的內(nèi)容被傳送到AH寄存器,低地址字節(jié)中的內(nèi)容被傳送到AL寄存器,如圖所示。存儲器操作碼19H19H99H99H┋┋AHAL代碼段指令1350H1351H1380H1381H2.寄存器操作數(shù)尋址將操作數(shù)存放在32位通用寄存器中,或存放在16位通用寄存器中,或存放在8位通用寄存器中,并對操作數(shù)進(jìn)行訪問操作,稱之為寄存器操作數(shù)尋址。指令MOVEDX,EAX;MOVEDX,EAX源操作數(shù)目標(biāo)操作數(shù)EAXEBXECXEDX

139A

139A

D407

D40711002233999999993存儲器操作數(shù)尋址

(1)直接尋址直接尋址是一種很簡單的尋址方式,雖然操作數(shù)存放在存儲器內(nèi),但在這種直接尋址方式下,操作數(shù)的有效地址是由指令直接給出。例如:

MOVEAX,LISTT

這條指令的功能是,將地址LISTT處4個連續(xù)字節(jié)地址中的32位操作數(shù)傳送到寄存器EAX內(nèi)。LISTT是存儲器中存儲單元的符號地址,LISTT的實際地址是1230H這個十六進(jìn)制地址1230H1231H1232H1233H┋┋806A38BC

80386ABCEAX存儲器(2)寄存器間接尋址

寄存器間接尋址這種尋址方式,可以對存儲器內(nèi)的任何存儲單元的數(shù)據(jù)進(jìn)行尋址,只是要借助于在BP,BX,DI和SI這些寄存器內(nèi)保存的偏移地址。例,如果寄存器BX的內(nèi)容是1000H,在執(zhí)行MOVAX,[BX]指令之后,地址1000H處的字內(nèi)容被傳送到AX寄存器中,如圖所示。1000H1001H1002H1003H┋89A335D4存儲器

A3D41000EAXEBX(3)基地址加變址尋址

所謂基地址加變址尋址,就是操作數(shù)位于所選的存儲器段內(nèi),操作數(shù)的有效地址由一個基地址寄存器的內(nèi)容再加上一個變址寄存器的內(nèi)容構(gòu)成。通常,在基地址寄存器內(nèi)保存的是位于存儲器內(nèi)數(shù)組的起始地址,而在變址寄存器內(nèi)保存的是數(shù)組元素的相對位置。每次BP寄存器在對存儲器內(nèi)的數(shù)組進(jìn)行尋址時,由BP寄存器和堆棧段寄存器兩者生成有效地址。例如:MOVEDX,[EAX+EBX]存儲器+EAXEBXECXEDXESPEBPESIEDI100AAB89200089100AH0020H102AH102AH1029H102BH1028H102CH1027H1026HAB

(4)寄存器相對尋址

寄存器相對尋址類似于基址加變址尋址,只不過是在寄存器相對尋址方式下,在變址寄存器或基地址寄存器的內(nèi)容中,加上了一個位移量,而形成了操作數(shù)的有效地址的值,然后是用這個有效地址的值,對存儲器中的操作數(shù)進(jìn)行尋址。在進(jìn)行32位尋址操作時,8個32位的通用寄存器除了ESP以外,都可以作為基地址或變址寄存器使用。操作數(shù)的有效地址是由基地址或變址寄存器的內(nèi)容再加上一個8位數(shù)值、16位數(shù)值或32位數(shù)值的位移量組成。例如:MOVEAX,[ECX+1AH]

指令是,將數(shù)據(jù)段中由ECX寄存器上的內(nèi)容,再加上1A這個數(shù)值所形成的操作數(shù)地址中的內(nèi)容傳送至EAX寄存器。指令MOVAX,[BX+1000H]的操作過程如圖示2200H2201H2202H2203H┋┋99AB45D6存儲器

ABD61200EAXEBX+1000H1200H2200H位移量

(5)相對基地址加變址尋址

相對基地址加變址尋址類似于基地址加變址尋址,它除了需要加上位移量之外,仍然需要用基地址寄存器和變址寄存器的內(nèi)容來形成操作數(shù)的地址。也就是說,它是用基址寄存器和變址寄存器上的內(nèi)容再加上位移量,從而形成操作數(shù)在存儲器中的有效地址。這種尋址方式常被用來對存儲器內(nèi)的二維數(shù)組的數(shù)組元素進(jìn)行尋址。例如:

MOVEDX,[EBX+ECX+200H]

圖中以指令MOVEAX,[BX+SI+100H]執(zhí)行過程為例,展示出用相對基址加變址尋址方式進(jìn)行尋址的操作過程。存儲器+EAXEBXECXEDXESPEBPESIEDI100A200059100AH0020H112AH112AH1129H112BH1128H112CH1127H1126H2B+位移量0100H102AH592B(6)帶比例因子的變址尋址

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

MOVEAX,[EBX+4*ECX]

溫馨提示

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

最新文檔

評論

0/150

提交評論