第2章微機(jī)系統(tǒng)中的微處理器_第1頁
第2章微機(jī)系統(tǒng)中的微處理器_第2頁
第2章微機(jī)系統(tǒng)中的微處理器_第3頁
第2章微機(jī)系統(tǒng)中的微處理器_第4頁
第2章微機(jī)系統(tǒng)中的微處理器_第5頁
已閱讀5頁,還剩56頁未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

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

文檔簡介

1第2章微機(jī)系統(tǒng)中的微處理器內(nèi)容提要

8086的內(nèi)部結(jié)構(gòu)

8086的寄存器結(jié)構(gòu)

8086的存儲器組織

8086的I/O組織

8086的尋址方式高檔微處理器的寄存器結(jié)構(gòu)和存儲器組織簡介

2常用術(shù)語(1)位(bit):計算機(jī)處理的最小數(shù)據(jù)單位,只能為“0”或“1”,縮寫為b千位(Kilobit):代表210位,即1024位,縮寫Kb兆位(Megabit):代表220位,即1024×1024位,縮寫Mb千兆位(Gigabit):代表230位,即1024Mb位,縮寫Gb兆兆位(Terabit):代表240位,即1024Gb位,縮寫Tb3常用術(shù)語(2)字節(jié)(Byte):計算機(jī)中存儲器容量的基本單位,一個字節(jié)由8位二進(jìn)制數(shù)據(jù)組成,Byte通??s寫為B,同樣有KB、MB、GB、TB字(Word):不同的場合有不同的含義,軟件上通常指2個字節(jié),硬件上一般指處理器外部數(shù)據(jù)總線的寬度字長:計算機(jī)運(yùn)算部件直接能處理的二進(jìn)制數(shù)據(jù)的位數(shù)。字長越長,計算機(jī)的處理能力越強(qiáng),運(yùn)算精度越高,指令功能越強(qiáng),可尋址的存儲空間也越大4常用術(shù)語(3)CPU主頻:主振頻率,CPU內(nèi)部的時鐘頻率,是CPU進(jìn)行運(yùn)算時的工作頻率。一般來說,主頻越高,一個時鐘周期里完成的指令數(shù)也越多,CPU的運(yùn)算速度也就越快。但由于內(nèi)部結(jié)構(gòu)不同,并非所有時鐘頻率相同的CPU性能也一樣。

5§2.18086的內(nèi)部結(jié)構(gòu)8086CPU從功能上來說分成兩大部分:

總線接口單元BIU(BusInterfaceUnit)

執(zhí)行單元EU(ExecutionUnit)BIU的作用:負(fù)責(zé)對存儲器的訪問以及與I/O設(shè)備之間的信息傳送。EU的作用:負(fù)責(zé)指令的執(zhí)行。6

通用寄存器8086CPU功能框圖

執(zhí)行單元AHALBHBL

CLCHDHDLSPBPDISICSDSSSES

IP

內(nèi)部寄存器

總線

控制

邏輯

AX

BXCXDX暫存器ALU

標(biāo)志寄存器

外部總線8086總線(16位)

指令隊(duì)列8086為6字節(jié)ALU數(shù)據(jù)總線(16位)EU控制器總線接口單元(BIU)

地址加法器(20位)數(shù)據(jù)總線(16位)

段寄存器指令指針(EU)123456隊(duì)列總線(8位)

地址總線78086的功能結(jié)構(gòu)總線接口單元(BIU)BIU包括4個段寄存器、指令指針I(yè)P(PC)、指令隊(duì)列寄存器(IR)、完成與EU通訊的內(nèi)部寄存器、地址加法器和總線控制邏輯。它的任務(wù)是執(zhí)行總線周期,完成CPU與存儲器和I/O設(shè)備之間信息的傳送。具體地講,就是取指令時,從存儲器指定地址取出指令送入指令隊(duì)列排隊(duì);執(zhí)行指令時,根據(jù)EU命令對指定存儲單元或I/O端口存取數(shù)據(jù)。88086CPU與存儲器、I/O設(shè)備的連接高位決定接口,2或3個低位選擇端口CPU數(shù)據(jù)線控制線地址線接口地址存儲器中的字節(jié)0101…I/O接口I/O端口…I/O設(shè)備高位決定模塊存儲器模塊98086的功能結(jié)構(gòu)執(zhí)行單元(EU)EU由算術(shù)邏輯單元ALU、暫存器、標(biāo)志寄存器(FLAGS)、通用寄存器組和EU控制器構(gòu)成。它的任務(wù)執(zhí)行指令,進(jìn)行全部的算術(shù)邏輯運(yùn)算,完成偏移地址的計算,向BIU提供指令執(zhí)行結(jié)果的數(shù)據(jù)和訪問存儲器需要的偏移地址,并對通用寄存器和標(biāo)志寄存器進(jìn)行管理。16位的ALU總線和8位隊(duì)列總線用于EU內(nèi)部和EU與BIU之間的通信。108086的指令流水線(1)一條指令的執(zhí)行過程:取指令取操作數(shù)(如果需要)執(zhí)行指令寫入存儲器8086出現(xiàn)以前,以上指令串行執(zhí)行取指1執(zhí)行1存結(jié)果1取指2執(zhí)行2取指3執(zhí)行3取操作數(shù)3CPUBUS忙忙忙忙忙閑閑閑8086以前的處理器118086的指令流水線(2)8086內(nèi)部有BIU、EU兩個獨(dú)立單元,可獨(dú)立完成總線操作和執(zhí)行指令的任務(wù),即兩個單元可重疊操作流水線就是兩次重疊或多次重疊操作忙8086處理器執(zhí)行1執(zhí)行2執(zhí)行3執(zhí)行3執(zhí)行4取指1取指2存結(jié)果1取指3取操作數(shù)3取指4存結(jié)果3取指5忙忙忙忙忙忙忙忙EUBUSBIU思考以8086為例,說明微處理器的基本功能。書上P12圖2.2中畫出的地址總線為什么是單向的?數(shù)據(jù)總線為什么是雙向的?1213§2.2

8086的寄存器結(jié)構(gòu)8086CPU內(nèi)部具有14個16位寄存器,用于提供參與運(yùn)算的數(shù)據(jù)、控制指令執(zhí)行和對指令及操作數(shù)尋址?;痉譃橥ㄓ眉拇嫫鹘M、控制寄存器組和段寄存器組。通用寄存器組

8個16位通用寄存器組成,這些寄存器分為兩組:數(shù)據(jù)寄存器及地址指針和變址寄存器。148086的寄存器結(jié)構(gòu)(1)BHBLAHALCHCLDHDL堆棧指針寄存器基址指針寄存器源變址寄存器目的變址寄存器通用寄存器控制寄存器指令指針寄存器狀態(tài)標(biāo)志寄存器代碼段寄存器數(shù)據(jù)段寄存器堆棧段寄存器附加段寄存器段寄存器AXBXCXDXSPBPDISICSDSSSESIPFLAGS158086的寄存器結(jié)構(gòu)(2)1、數(shù)據(jù)寄存器4個數(shù)據(jù)寄存器:累加器AX,基址寄存器BX,計數(shù)寄存器CX,數(shù)據(jù)寄存器DX特點(diǎn):可分為高8位(AH、BH、CH、DH)和低8位(AL、BL、CL、DL)。這兩組8位寄存器能分別尋址。這樣,可以將數(shù)據(jù)寄存器當(dāng)作一個16位寄存器,也可用作兩個8位寄存器可用來存放8位或16位二進(jìn)制操作數(shù),這些操作數(shù)可以是參加運(yùn)算的操作數(shù)、中間結(jié)果或操作數(shù)地址大多數(shù)算數(shù)和邏輯運(yùn)算指令可以使用這些寄存器168086的寄存器結(jié)構(gòu)(3)2、地址指針和變址寄存器4個:堆棧指針SP,基址指針BP,源變址寄存器SI,目的變址寄存器DI特點(diǎn):這4個16位寄存器只能按16位進(jìn)行存取操作,主要用來形成操作數(shù)的地址,用于堆棧操作和變址運(yùn)算中計算操作數(shù)和有效地址SP,BP用于堆棧操作,SP用來確定堆棧在內(nèi)存中的地址,BP用來存放在現(xiàn)行堆棧段的一個數(shù)據(jù)區(qū)的“基址”SI,DI用于變址操作,存放變址地址這4個寄存器也可用作數(shù)據(jù)寄存器17通用寄存器的特定用法188086的寄存器結(jié)構(gòu)(4)3、指令指針I(yè)P16位專用寄存器,保存下一條要執(zhí)行的指令的偏移地址當(dāng)BIU從內(nèi)存中取出一個指令字節(jié)后,IP自動加1,指向下一個字節(jié)IP指向的是指令地址的段內(nèi)地址偏移量,又稱偏移地址或有效地址程序員不能對IP進(jìn)行存取操作,程序中的轉(zhuǎn)移指令、返回指令以及中斷處理能對IP進(jìn)行操作198086的寄存器結(jié)構(gòu)(5)4、標(biāo)志寄存器FLAGS1514131211109876543210

CFPFAFZFSFTFIFDFOF16位,其中有6個狀態(tài)位,3個控制位

6個狀態(tài)位有:CF、PF、AF、ZF、SF、OF3個控制位有:IF、DF、TF208086的寄存器結(jié)構(gòu)(6)標(biāo)志寄存器FLAGS(狀態(tài)位)進(jìn)位標(biāo)志CF,反映算術(shù)運(yùn)算后,最高位(字節(jié)操作為D7,字操作為D15)出現(xiàn)進(jìn)位或借位的情況,有則為“1”奇偶標(biāo)志PF,反映操作結(jié)果的低八位中“1”的個數(shù)的情況,若為偶數(shù),則PF=1輔助進(jìn)位標(biāo)志AF,反映一個8位量的低4位向高4位有無進(jìn)位或借位的情況,有則置“1”零標(biāo)志ZF,反映運(yùn)算結(jié)果是否為0的情況,結(jié)果為0,ZF置為“1”,否則為“0”218086的寄存器結(jié)構(gòu)(7)符號標(biāo)志SF,反映運(yùn)算結(jié)果的符號情況,若結(jié)果為負(fù)數(shù),SF為“1”,否則為“0”。SF的取值與運(yùn)算結(jié)果最高位(字節(jié)操作為D7,字操作為D15)一致。溢出標(biāo)志OF,反映帶符號數(shù)運(yùn)算結(jié)果是否超過機(jī)器所能表示的數(shù)值范圍的情況,對字節(jié)運(yùn)算為-128~+127,對字運(yùn)算為-32768~+32767。若超過上述范圍則稱為“溢出”,OF=1,否則為“0”。228086的寄存器結(jié)構(gòu)(8)標(biāo)志寄存器FLAGS(控制位)方向標(biāo)志DF,在進(jìn)行字符串操作時,每執(zhí)行一條串操作指令,對地址要進(jìn)行一次調(diào)整,由DF決定地址是增還是減。若DF=1,則為減量;DF=0,則為增量。中斷允許標(biāo)志IF,表示系統(tǒng)是否允許外部可屏蔽中斷。若IF=1,表示允許中斷,IF=0,表示不允許中斷。IF對不可屏蔽中斷及內(nèi)部中斷請求不起作用。跟蹤標(biāo)志TF,當(dāng)TF=1時,CPU每執(zhí)行完一條指令,便自動產(chǎn)生一個內(nèi)部中斷,對程序進(jìn)行逐條檢查,常用于程序的調(diào)試。238086的寄存器結(jié)構(gòu)(9)5、段寄存器內(nèi)存中通常存放三種信息:代碼(指令):計算機(jī)執(zhí)行何種操作數(shù)據(jù)(字符、數(shù)值):程序處理的對象堆棧信息:保存返回地址和中間結(jié)果為清晰起見,這三類信息分別存放在各自的存儲區(qū)域內(nèi)(存儲系統(tǒng)中的不同存儲段)8086系統(tǒng)中把可直接尋址的1M字節(jié)內(nèi)存空間分為稱作段的邏輯區(qū)域,每個段的物理長度為64K字節(jié)。每個段的起始地址的有關(guān)值存放在稱為段寄存器的4個16位寄存器中248086的寄存器結(jié)構(gòu)(10)4個段寄存器為代碼段寄存器CS:指向當(dāng)前的代碼段,指令由此段取出數(shù)據(jù)段寄存器DS:指向當(dāng)前數(shù)據(jù)段,通常用來存放程序變量堆棧段寄存器SS:指向當(dāng)前的堆棧段,堆棧操作所需的就是該段存儲單元的內(nèi)容附加段寄存器ES:指向當(dāng)前附加段,通常也用來存儲數(shù)據(jù)思考8086內(nèi)部有哪些程序可見的寄存器?其主要作用是什么?2526§2.3

8086的存儲器組織(1)存儲器組織8086CPU有20條地址線,可配置1MB的存儲器,地址編號為00000H-FFFFFH存儲空間按字節(jié)(8位)進(jìn)行組織,每個存儲單元存儲一個字節(jié)的數(shù)據(jù),若存放“字”數(shù)據(jù)(16位),則存放在相鄰兩個存儲單元之中,高字節(jié)存放在高地址單元,低字節(jié)存放在低地址單元00000HFFFFFH00001H00002H00003HFFFFEH存儲器278086的存儲器組織(2)8086允許字從任何地址開始。字的地址為偶地址時,稱字的存儲是對準(zhǔn)的,CPU訪問時需要一個總線周期;若字的地址為奇地址時,稱字的存儲是未對準(zhǔn)的,CPU訪問需要兩個總線周期。

高字節(jié)低字節(jié)1587060280H60281H60282H288086的存儲器組織(3)存儲器分段8086CPU寄存器皆為16位,內(nèi)部ALU只能進(jìn)行16位運(yùn)算,因此,8086CPU對地址只能進(jìn)行16位運(yùn)算,尋址范圍216=65536(64K)字節(jié)。所以引入分段概念,以獲得20位地址一個段是存儲器的一個邏輯單位,其長度可達(dá)64KB,每個段都由連續(xù)的存儲單元構(gòu)成,是存儲器中獨(dú)立的可分別尋址的單位每段第一個字節(jié)的位置稱為“段起始地址”,可由軟件指定段起始地址:必須能被16整除(即XXXX0H)幾個段可以相互重疊,也可指向同一空間298086的存儲器組織(4)段基址與段內(nèi)偏移量8086與存儲器之間所有信息的交換都要使用20位的物理地址,而程序中所涉及到的地址都是16位的邏輯地址,對所給定的任一存儲單元而言,有兩部分邏輯地址:

“段地址”:一個段的起始地址的高16位,也稱“段基址”。

“段內(nèi)偏移量”:段內(nèi)一個存儲單元的地址相對于段起始地址的距離,也稱“有效地址EA”,“偏移地址”。段地址存放在段寄存器CS、DS、SS、ES中段內(nèi)偏移量由IP、SP、SI、DI、BX、BP以及相應(yīng)寄存器的組合而組成308086的存儲器組織(5)邏輯地址與物理地址在具有地址變換機(jī)構(gòu)的計算機(jī)中,有兩種存儲器地址:

邏輯地址:允許在程序中編排的地址物理地址:信息在存儲器中實(shí)際存放地址在8086系統(tǒng)中,每個存儲單元也都認(rèn)為有這兩類地址318086的存儲器組織(6)物理地址的形成存儲單元的20位物理地址是通過將16位的段基址左移4位,再加上16位的偏移地址而形成的,即

物理地址=段基址*10H+段內(nèi)偏移量例如:6000:0280的物理地址為60280H8086CPU中BIU單元的地址加法器可用來完成物理地址的計算328086的存儲器組織(7)信息的分段存儲與段寄存器的關(guān)系表各種類型訪問存儲器時的地址成分內(nèi)存訪問類型默認(rèn)段寄存器可指定段寄存器段內(nèi)偏移地址來源123456取指令堆棧操作源串目的串BP用作基址尋址一般數(shù)據(jù)存取CSSSDSESSSDS無無CS、ES、SS無CS、ES、DSCS、ES、SSIPSPSIDI按尋址方式計算得到的有效地址按尋址方式計算得到的有效地址338086的存儲器組織(8)段寄存器的使用約定任何類型訪問存儲器時,其段地址要么由默認(rèn)段寄存器提供,要么由“指定”的段寄存器提供。段寄存器DS、ES和SS的內(nèi)容是用傳送指令置入的,但任何傳送型指令不能向段寄存器CS置入數(shù),但一些指令可以設(shè)置和影響CS的內(nèi)容,如:ASSUME偽指令、JMP、CALL、RET、INT和IRET。表中前四項(xiàng)指明了一個16位的指針寄存器或變址寄存器作為段內(nèi)偏移地址的來源,其它都要按指令碼規(guī)定的尋址方式求得。思考什么是邏輯地址?什么是物理地址?如何由邏輯地址求物理地址?3435§2.48086的I/O組織I/O接口是保證信息和數(shù)據(jù)在CPU和I/O設(shè)備之間正常傳送的電路。I/O端口是I/O接口內(nèi)的寄存器,跟存儲單元相同,也是以字節(jié)為單位編址,一個I/O端口有唯一的I/O地址相對應(yīng)。8086地址總線的低16位用來對8位I/O端口尋址,所以8086的I/O地址空間為64K,可以訪問64K個I/O端口與存儲器類似,任何兩個地址連續(xù)的8位I/O端口,都可以當(dāng)作一個16位I/O端口,類似于存儲器的字。對8086CPU來說,也象存儲器的字那樣,要實(shí)現(xiàn)奇地址的16位I/O端口輸入輸出,都必須訪問兩次。368086CPU與存儲器、I/O設(shè)備的連接高位決定接口,2或3個低位選擇端口CPU數(shù)據(jù)線控制線地址線接口地址存儲器中的字節(jié)0101…I/O接口I/O端口…I/O設(shè)備高位決定模塊存儲器模塊37由于存儲器劃分為模塊,所以存儲器地址的高幾位可用來選擇模塊,其余低位則用來標(biāo)識該模塊內(nèi)的字節(jié)或字。同樣,利用I/O地址中的高位來標(biāo)識I/O接口,而用2或3個低位來選擇該接口內(nèi)的I/O端口。存儲器和I/O端口的組織(1)38地址總線的條數(shù)就是二進(jìn)制地址碼的位數(shù),它能夠表示的不同地址的集合稱為地址空間。存儲單元和I/O端口在同一地址空間,這種方法稱為統(tǒng)一編址,它們的存取指令是一樣的;而兩者在兩個獨(dú)立的地址空間,它們的地址碼的位數(shù)不同,采用的存取指令是不一樣的,這種方法稱為獨(dú)立編址。地址碼的位數(shù)決定了地址空間的大小。若地址碼共n位,則可以有2n個地址。對于單地址空間的CPU的處理器,則存儲器和I/O端口合在一起的空間容量為2n個字節(jié)。對于獨(dú)立空間的來說,地址總線的條數(shù)決定了存儲器地址空間的容量;地址總線中用于I/O端口編址的條數(shù)決定I/O地址空間的容量。存儲器和I/O端口的組織(2)39

例如在8086CPU系統(tǒng)中,地址總線的條數(shù)為20條,則存儲器的最大容量為220,即1MB字節(jié);它的地址總線的低16位用來對I/O端口編址,則I/O地址空間的容量為216,即64K個I/O端口地址。存儲器和I/O端口的組織(3)40§2.5

8086的尋址方式尋址方式:指令中用于說明操作數(shù)地址的方法尋址方式分為數(shù)據(jù)尋址方式和轉(zhuǎn)移地址尋址方式數(shù)據(jù)尋址方式通常有8種:1、立即尋址2、寄存器尋址3、直接尋址4、寄存器間接尋址5、寄存器相對尋址6、基址變址尋址7、基址變址且相對尋址8、隱含尋址41立即尋址存儲器……9ABC……1234……F5……1000……代碼段數(shù)據(jù)段MOVAX,1000HAXAHAL100030000H31000H31001H32000H32001H

操作數(shù)為立即數(shù),直接存放在代碼段中42寄存器尋址AX12A6HBX12A6H

操作數(shù)在寄存器中。對于16位數(shù)據(jù),寄存器可以是8個通用寄存器中的任意一個(AX、BX、CX、DX、SI、DI、SP、BP)。對于8位數(shù)據(jù),寄存器可以是AL、AH、BL、BH、CL、CH、DL、DH。例如:MOVAX,BX43直接尋址存儲器……9ABC……1234……F5……1000……代碼段數(shù)據(jù)段30000H31000H31001H32000H32001HMOVAX,[1000H]AXAHAL1234DS30000100031000物理地址

操作數(shù)在內(nèi)存單元中指令碼中直接給出數(shù)據(jù)的偏移地址44寄存器間接尋址(1)

操作數(shù)在內(nèi)存單元中數(shù)據(jù)的偏移地址由指定的寄存器給出:BX,SI或DIEA=(BX)(SI)(DI)45寄存器間接尋址(2)存儲器……9ABC……1234……F5…………代碼段數(shù)據(jù)段30000H31000H31001H32000H32001HMOVAX,[BX]AXAHAL1234DS30000100031000物理地址BX操作數(shù)46寄存器相對尋址(1)

操作數(shù)在內(nèi)存單元中數(shù)據(jù)的偏移地址是位移量和一個基址寄存器(BX、BP)或變址寄存器(SI、DI)的內(nèi)容之和EA=(BX)(BP)(SI)(DI)+8位disp16位disp47寄存器相對尋址(2)存儲器……9ABC……1234……F5……0500……代碼段數(shù)據(jù)段30000H31000H31001H32000H32001HMOVAX,disp[SI]AXAHAL1234DS300000B0031000物理地址SI操作數(shù)0500disp48基址變址尋址(1)

操作數(shù)在內(nèi)存單元中數(shù)據(jù)的偏移地址是一個基址寄存器(BX、BP)和一個變址寄存器(SI、DI)的內(nèi)容之和EA=(BX)(BP)+(SI)(DI)49基址變址尋址(2)存儲器……9ABC……1234……F5…………代碼段數(shù)據(jù)段30000H31000H31001H32000H32001HMOVAX,[BX][SI]DS30000100032000物理地址BX操作數(shù)1000SIAXAHAL9ABC50基址變址且相對尋址(1)

操作數(shù)在內(nèi)存單元中。數(shù)據(jù)的偏移地址是位移量,一個基址寄存器(BX、BP)和一個變址寄存器(SI、DI)的內(nèi)容三部分之和。+EA=(BX)(BP)+(SI)(DI)8位disp16位disp51基址變址且相對尋址(2)存儲器……9ABC……1234……F5……0500……代碼段數(shù)據(jù)段30000H31000H31001H32000H32001HMOVAX,disp[BX][SI]DS30000100032000物理地址BX操作數(shù)0B00SIAXAHAL9ABC0500disp52隱含尋址有些指令碼中不包含指明操作數(shù)地址的部分,而其操作碼本身隱含地說明了操作數(shù)地址。例如:

MUL

CL;其操作為(AX)←(AL)×(CL)在這里,AL操作數(shù)并沒有在指令中指明,是由操作碼本身隱含地說明了53

若(BX)=0158H,(DI)=10A5H,位移量=1B57H,(DS)=2100H,(SS)=1100H,(BP)=0100H,段寄存器按默認(rèn)段寄存器,則相對于各種尋址方式的有效地址和物理地址是:⑴直接尋址:

EA=1B57H物理地址=(DS)×10H+EA=21000H+1B57H=22B57H⑵寄存器間接尋址(假設(shè)寄存器為BX):

EA=0158H物理地址=(DS)×10H+EA=21000H+0158H=21158H例題54

⑶寄存器相對尋址(假設(shè)寄存器為BP)

EA=0100H+1B57H=1C57H物理地址=(SS)×10H+EA=11000H+1C57H=12C57H⑷基址變址尋址(假設(shè)寄存器為BX和DI)

EA=0158H+10A5H=11FDH物理地址=(DS)×10H+EA=21000H+11FDH=221FDH⑸基址變址且相對尋址(假設(shè)寄存器為BP和DI)

EA=0100H+10A5H+1B57H=2CFCH物理地址=(SS)×10H+EA=11000H+2CFCH=13CFCH55轉(zhuǎn)移地址的尋址方式指令是按順序存放在存儲器中的,其執(zhí)行順序是由代碼段寄存器CS和指令指針I(yè)P的內(nèi)容決定的。在正常的情況下,BIU自動修改IP的內(nèi)容,使它指向下一條指令。程序轉(zhuǎn)移指令通過改變IP和CS的內(nèi)容,就可以改變程序的正常執(zhí)行順序。轉(zhuǎn)移地址的尋址方式有4種:⒈段內(nèi)直接尋址2.段內(nèi)間接尋址3.段間直接尋址4.段間間接尋址56段內(nèi)直接尋址JMP指令的操作數(shù)部分直接給出目標(biāo)單元指令所在存儲單元的地址的形成:

CS*10H+(IP)

(IP)=(IP)+disp(8位或者16位)例如:...JMPABC1...ABC1:……...57段內(nèi)間接尋址JMP指令轉(zhuǎn)移的目標(biāo)地址在某一個通用寄存器中或者在某一個字存儲單元中指令所在存儲單元的地址的形成:

CS*10H+(IP)

(IP)←EA(存在寄存器或存儲器單元中)例如:JMPCX或者JMPWORDPTR[BX]58段間直接尋址指令碼中直接給出16位的段地址和16位的有效地址。指令所在存儲單元的地址的形成:

(IP)←EA(指令)

(CS)←段地址(指令)例如:COSEG1SEGMENT...JMPFARPTRTRAGET...COSEG1ENDSCOSEG2SEGMENT...TRAGET:--------------------...COSEG2ENDS59段間間接尋址段間間接尋址和段內(nèi)間接尋址相似,要得到的轉(zhuǎn)移地址包括16位段地址和16位有效地址,使用地址連續(xù)的4個存儲單元存儲指令所在存儲單元的地址的形成:

(IP)←EA(存儲單元的前兩個字節(jié))

(CS)←段地址(存儲單元的后兩個字節(jié))例如:JMPDWORDPTRADDR[BX]或者

JMPDWORDPTR[BX][SI]60§2.7

高檔微處理器的寄存器結(jié)構(gòu)和存儲器組織簡介

和8086內(nèi)部的寄存器結(jié)構(gòu)和存儲器組織相比,高檔微處理器的寄存器結(jié)構(gòu)和存儲器組織具有以下特點(diǎn):使高檔微處理器具有更強(qiáng)的數(shù)據(jù)處理能力;高檔微處理器支持多任務(wù)操作系統(tǒng)。61AHALBHBLCHCLDHDLSPBPDISIIPFLAGSCSDSESSSFSGSEAXEBXECXEDXESPEBPEDIESIEIPEFLAGS31160高檔微處理器的寄存器結(jié)構(gòu)62高檔微處理器的訪問存儲器機(jī)制奔騰微處理器可以訪問的存儲器空間為4GB;采用虛擬存儲技術(shù),還可以大大擴(kuò)展存儲空間。63實(shí)模式與保護(hù)模式80286及以上的高檔微處理器都可以工作于實(shí)模式或保護(hù)模式,而8086只能工作于實(shí)模式;實(shí)模式下微處理器只能訪問地址低端的1MB存儲空間,所以地址低端的1MB存儲區(qū)稱為實(shí)模式存儲器、常規(guī)存儲區(qū)或DOS存儲器系統(tǒng);DOS要求處理器工作于實(shí)模式,而且各種微處理器在任何情況下每次加電或復(fù)位后都默認(rèn)以實(shí)模式開始;Windows工作于保護(hù)模式,只有保護(hù)模式才允許訪問低端的1MB存儲區(qū)和高于1MB以上的存儲區(qū)。64保護(hù)模式下的存儲器尋址機(jī)制保護(hù)模式下訪問存儲器的地址仍由兩部分合成,即偏移地址和基地址;其基地址不再直接是段寄存器保存的段地址,而是由段寄存器和對應(yīng)的描述符寄存器聯(lián)合提供的。選擇符選擇符選擇符選擇符選擇符選擇符15012位屬性32位基地址20位邊界段描述符高速緩沖寄存器段寄存器65保護(hù)模式下的存儲器尋址機(jī)制保護(hù)模式下的段寄存器保存的不再是段地址,而是提供找到段地址的選擇符;與選擇符密切相關(guān)的概念是段描述符,描述符表和描述符寄存器。66段描述符段描述符是對段進(jìn)行說明的固定格式的連續(xù)8個字節(jié)信息;其中包括32位的段地址(基地址),20位的段界限,其余12位是屬性位(標(biāo)志位和控制位);32位段地址意味著4GB存儲空間的任何一個單元地址都可以被指定為段的開始;段的界限指明該段的最大偏移量,即段的長度或段內(nèi)的容量(最大為220=1M)。67描述符表和描述符索引表描述符表是在存儲器中定義的用于存儲描述符的特殊用途的段;有三種描述符表:全局描述符表局部描述符表中斷描述符表每個表最多存放213個描述符,每個描述符8個字節(jié),所以每個表占用存儲器空間為64KB;每個描述符分配一個13位的索引號,索引號乘以8得到這個描述符在描述符表中的開始地址;每個描述符在描述符表中的地址是用索引號經(jīng)換算得到的。68段寄存器、選擇符和描述符寄存器6個16位段寄存器中的每一個都對應(yīng)有一個64位描述符寄存器;段寄存器由程序置入段選擇符,16位選擇符中的13位是指明該段的描述符在描述符表中地址的索引號;一旦程序向某個段寄存器置入段選擇符,將自動地把描述符表中被選定的64位描述符傳入對應(yīng)的描述符寄存器;描述符寄存器和段寄存器是“共生的”,但卻不能用指令讀寫內(nèi)容,是程序不可見的。69第3章結(jié)

溫馨提示

  • 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

提交評論