第二章-微處理器的結(jié)構(gòu)與存儲器組織2014_第1頁
第二章-微處理器的結(jié)構(gòu)與存儲器組織2014_第2頁
第二章-微處理器的結(jié)構(gòu)與存儲器組織2014_第3頁
第二章-微處理器的結(jié)構(gòu)與存儲器組織2014_第4頁
第二章-微處理器的結(jié)構(gòu)與存儲器組織2014_第5頁
已閱讀5頁,還剩50頁未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

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

文檔簡介

1、1、80 x86微處理器的結(jié)構(gòu)2、存儲器組織從從 8086 到到 pentium (8086: 16位位) 執(zhí)行部件(執(zhí)行部件(EU) 總線接口部件(總線接口部件(BIU)微處理器的結(jié)構(gòu)微處理器的結(jié)構(gòu)8086微微處理器處理器的基本的基本框圖框圖CHDHDISPBPSI65標(biāo)志3執(zhí)行部分控制電路運(yùn)算寄存器ALU1 24DSSSES輸入/輸出控制電路IPCS內(nèi)部暫存器BHAHDLCLALBL20 位地址加法16 位外部總線指令隊(duì)列緩沖器8 位16 位通用寄存器執(zhí)行部件(EU)總線接口部件(BIU)功能:負(fù)責(zé)與功能:負(fù)責(zé)與 M M、I/O I/O 端口傳送數(shù)據(jù)。端口傳送數(shù)據(jù)。 總線接口部件要從內(nèi)存總

2、線接口部件要從內(nèi)存 取指令送到指令隊(duì)列;取指令送到指令隊(duì)列; CPUCPU執(zhí)行指令時(shí),要配合執(zhí)行部件從指定的內(nèi)存單元執(zhí)行指令時(shí),要配合執(zhí)行部件從指定的內(nèi)存單元 或者外設(shè)端口中取數(shù)據(jù),將數(shù)據(jù)傳送給執(zhí)行部件;或者外設(shè)端口中取數(shù)據(jù),將數(shù)據(jù)傳送給執(zhí)行部件; 或把執(zhí)行部件的操作結(jié)果傳送給指定的或把執(zhí)行部件的操作結(jié)果傳送給指定的M M或或I/OI/O口??凇Mㄟ^總線從內(nèi)存取指令和操作數(shù)通過總線從內(nèi)存取指令和操作數(shù)-指令隊(duì)列指令隊(duì)列-EU-EU-執(zhí)行完畢執(zhí)行完畢-BIU-BIU-內(nèi)存。內(nèi)存。總線接口單元總線接口單元組成組成q 4 4 個(gè)段地址寄存器(個(gè)段地址寄存器(CSCS、DSDS、ESES、SSSS),

3、),q 1616位指令指針寄存器位指令指針寄存器IPIP,q 2020位的地址加法器位的地址加法器(16d(16d 段地址段地址+ +偏移地址物理地址偏移地址物理地址),),q 6 6字節(jié)(字節(jié)(80868086)或)或4 4字節(jié)(字節(jié)(80888088)的指令隊(duì)列)的指令隊(duì)列, ,q 總線控制電路總線控制電路: :處理器與外界總線聯(lián)系的轉(zhuǎn)接電路。處理器與外界總線聯(lián)系的轉(zhuǎn)接電路。包括三組總線:包括三組總線:20 20 位地址總線,位地址總線,16 16 位雙向數(shù)據(jù)總線,一組控制總線。位雙向數(shù)據(jù)總線,一組控制總線。總線接口單元總線接口單元指令隊(duì)列指令隊(duì)列80868086的指令隊(duì)列為的指令隊(duì)列為6

4、 6個(gè)字節(jié)個(gè)字節(jié),8088,8088的指令隊(duì)列為的指令隊(duì)列為4 4個(gè)字節(jié)。個(gè)字節(jié)。執(zhí)行指令的同時(shí)從內(nèi)存中取下一條或幾條指令,取來的指令放在執(zhí)行指令的同時(shí)從內(nèi)存中取下一條或幾條指令,取來的指令放在指令隊(duì)列中,使指令隊(duì)列中,使 BIU BIU 具有預(yù)取指令的功能,是一種先進(jìn)先出具有預(yù)取指令的功能,是一種先進(jìn)先出(FIFOFIFO)的數(shù)據(jù)結(jié)構(gòu)。)的數(shù)據(jù)結(jié)構(gòu)。指令執(zhí)行順序指令執(zhí)行順序順序指令執(zhí)行:指令隊(duì)列存放緊接在執(zhí)行指令后面的那一條指令。順序指令執(zhí)行:指令隊(duì)列存放緊接在執(zhí)行指令后面的那一條指令。執(zhí)行轉(zhuǎn)移指令:執(zhí)行轉(zhuǎn)移指令:BIU BIU 清除指令隊(duì)列中的內(nèi)容,從新的地址取入指清除指令隊(duì)列中的內(nèi)容,從

5、新的地址取入指 令,立即送往執(zhí)行單元,然后再從新單元開始重令,立即送往執(zhí)行單元,然后再從新單元開始重 新填滿隊(duì)列。新填滿隊(duì)列??偩€接口單元總線接口單元功能:負(fù)責(zé)指令執(zhí)行。功能:負(fù)責(zé)指令執(zhí)行。組成:組成:4 4個(gè)通用寄存器:個(gè)通用寄存器:AXAX、BXBX、CXCX、DXDX 4 4個(gè)專用寄存器:個(gè)專用寄存器:BPBP、SPSP、SISI、DIDI標(biāo)志寄存器(標(biāo)志寄存器(PSWPSW) 9 9個(gè)標(biāo)志位個(gè)標(biāo)志位算術(shù)邏輯單元:算術(shù)邏輯單元:1616位加法器,用于對寄存器和指令操作數(shù)進(jìn)行位加法器,用于對寄存器和指令操作數(shù)進(jìn)行算術(shù)或邏輯運(yùn)算。算術(shù)或邏輯運(yùn)算。EU EU 控制系統(tǒng):接受從總線接口單元的指令

6、隊(duì)列中取來的指令控制系統(tǒng):接受從總線接口單元的指令隊(duì)列中取來的指令代碼,對其譯碼和向代碼,對其譯碼和向 EU EU 內(nèi)各有關(guān)部分發(fā)出時(shí)序命令信號,協(xié)內(nèi)各有關(guān)部分發(fā)出時(shí)序命令信號,協(xié)調(diào)執(zhí)行指令規(guī)定的操作。調(diào)執(zhí)行指令規(guī)定的操作。執(zhí)行單元執(zhí)行單元8086/80888086/8088微處理器:微處理器:BIUBIU和和EUEU分開,取指和執(zhí)行可以重迭,大大減少了等待取指所分開,取指和執(zhí)行可以重迭,大大減少了等待取指所需的時(shí)間,提高需的時(shí)間,提高CPUCPU的利用率。的利用率。重迭操作技術(shù):一方面提高了整個(gè)執(zhí)行速率,另一方面降低了重迭操作技術(shù):一方面提高了整個(gè)執(zhí)行速率,另一方面降低了與之相配的存儲器的存

7、取速度的要求。與之相配的存儲器的存取速度的要求。取指取指取指取指取指取指取指取指得到數(shù)據(jù)得到數(shù)據(jù)等待等待執(zhí)行執(zhí)行執(zhí)行執(zhí)行執(zhí)行執(zhí)行執(zhí)行執(zhí)行執(zhí)行單元執(zhí)行單元80868086、80888088共有共有1414個(gè)個(gè)1616位寄存器位寄存器8 8個(gè)通用寄存器:個(gè)通用寄存器:AX,BX,CX,DX,SP,BP,SI,DIAX,BX,CX,DX,SP,BP,SI,DI4 4個(gè)段寄存器:個(gè)段寄存器:CS,SS,DS,ESCS,SS,DS,ES指令指針:指令指針:IPIP標(biāo)志寄存器:標(biāo)志寄存器:FRFR編程結(jié)構(gòu)編程結(jié)構(gòu) 80868086的寄存器結(jié)構(gòu)的寄存器結(jié)構(gòu)AHAHALALBHBHBLBLCHCHCLCLDH

8、DHDLDLSPSPBPBPSISIDIDIIPIPPSWPSWCSCSDSDSSSSSESESAXAXBXBXCXCXDXDX累加器累加器基址基址計(jì)數(shù)計(jì)數(shù)數(shù)據(jù)數(shù)據(jù)數(shù)據(jù)寄存器數(shù)據(jù)寄存器0 015150 07 78 815150 015150 01515附加數(shù)據(jù)段附加數(shù)據(jù)段堆棧段堆棧段數(shù)據(jù)段數(shù)據(jù)段代碼段代碼段段寄存器段寄存器指令指針指令指針狀態(tài)標(biāo)志狀態(tài)標(biāo)志控制寄存器控制寄存器堆棧指針堆棧指針基址指針基址指針 源變址源變址目的變址目的變址指針寄存器指針寄存器變址寄存器變址寄存器通通用用寄寄存存器器OFOF DFDF IFIF TFTF SFSF ZFZFAFAFPFPFCFCF0 015152 2

9、4 45 56 67 78 89 91010AXAX、BXBX、CXCX、DX DX 作為通用寄存器。作為通用寄存器。用來暫存計(jì)算過程中所用到的用來暫存計(jì)算過程中所用到的8 8位或位或1616位的操作數(shù)或操作數(shù)的位的操作數(shù)或操作數(shù)的地址或指令,結(jié)果或其它信息。地址或指令,結(jié)果或其它信息。訪問形式:可以用訪問形式:可以用1616位的訪問;或者可以用字節(jié)(位的訪問;或者可以用字節(jié)(8 8位)形式位)形式訪問。訪問。高高8 8位記作:位記作:AHAH、BHBH、CHCH、DH DH 低低8 8位記作:位記作:ALAL、BLBL、CLCL、DLDL通用寄存器通用寄存器AXAX 作為累加器。作為累加器。

10、 它是算術(shù)運(yùn)算的主要寄存器,所有它是算術(shù)運(yùn)算的主要寄存器,所有I/OI/O指令都使用這一寄指令都使用這一寄存器與外部設(shè)備交換數(shù)據(jù)。存器與外部設(shè)備交換數(shù)據(jù)。例:例: IN AL, 20HIN AL, 20HOUT 30H, AXOUT 30H, AXBXBX BaseBase用作基址寄存器使用。用作基址寄存器使用。 在計(jì)算內(nèi)存儲器地址時(shí),經(jīng)常用來存放基址。在計(jì)算內(nèi)存儲器地址時(shí),經(jīng)常用來存放基址。例:例:MOV AX, BX+03HMOV AX, BX+03H通用寄存器通用寄存器CXCX Count Count可以作計(jì)數(shù)寄存器使用??梢宰饔?jì)數(shù)寄存器使用。 在循環(huán)在循環(huán)LOOPLOOP指令和串處理指

11、令中用作隱含計(jì)數(shù)器。指令和串處理指令中用作隱含計(jì)數(shù)器。DXDX Data Data可以作為數(shù)據(jù)寄存器使用。一般在雙字長乘除法運(yùn)算可以作為數(shù)據(jù)寄存器使用。一般在雙字長乘除法運(yùn)算時(shí),把時(shí),把DXDX和和AXAX組合在一起存放一個(gè)雙字長組合在一起存放一個(gè)雙字長(32(32位位) )數(shù),數(shù),DXDX用來存用來存放高放高1616位位; ; 對某些對某些I/OI/O操作操作DXDX可用來存放可用來存放I/OI/O的端口地址(口地的端口地址(口地址址 256256)。)。 例:例:MUL BX; (AX)MUL BX; (AX) (BX)(BX)(DX)(AX)(DX)(AX) 例例: IN AL, DX:

12、 IN AL, DX通用寄存器通用寄存器地址指針與變址寄存器地址指針與變址寄存器: SPSP、BPBP、SISI、DI DI 四個(gè)四個(gè)1616位寄存器。位寄存器。以字為單位在運(yùn)算過程中存放操作數(shù),以字為單位在運(yùn)算過程中存放操作數(shù),經(jīng)常用以在段內(nèi)尋址時(shí)提供偏移地址。經(jīng)常用以在段內(nèi)尋址時(shí)提供偏移地址。段地址段地址: :只取段起始地址高只取段起始地址高1616位值。位值。偏移地址偏移地址: :指在段內(nèi)某內(nèi)存單元物理地址相對段起始地址的偏移值。指在段內(nèi)某內(nèi)存單元物理地址相對段起始地址的偏移值。 高高16位值位值 0000B通用寄存器通用寄存器地址指針寄存器地址指針寄存器(SP(SP、 BP )BP )

13、SPSP(stack pointerstack pointer) 堆棧指針寄存器堆棧指針寄存器用來指示棧頂?shù)钠频刂酚脕碇甘緱m數(shù)钠频刂? , 必須與必須與SSSS段寄存器聯(lián)合使用確定實(shí)際段寄存器聯(lián)合使用確定實(shí)際地址。地址。BPBP(base pointerbase pointer) 基址指針寄存器基址指針寄存器可以與可以與SSSS寄存器聯(lián)合使用來確定堆棧段中某一存儲器單元地址。寄存器聯(lián)合使用來確定堆棧段中某一存儲器單元地址。通用寄存器通用寄存器8086系統(tǒng)存儲器與總線連接系統(tǒng)存儲器與總線連接堆棧和指針堆棧和指針設(shè)設(shè):( SS)=3F00H,(SP)=0060H:( SS)=3F00H,(S

14、P)=0060H堆棧和指針如下圖:堆棧和指針如下圖:堆棧是內(nèi)存開辟的一個(gè)特殊數(shù)據(jù)區(qū),一端固定,一端浮動,嚴(yán)格按堆棧是內(nèi)存開辟的一個(gè)特殊數(shù)據(jù)區(qū),一端固定,一端浮動,嚴(yán)格按照后進(jìn)先出的工作原則。照后進(jìn)先出的工作原則。數(shù)據(jù)總線數(shù)據(jù)總線地址總線地址總線D7D0D7D01 M X 81 M X 8位存儲體位存儲體A19A0A19A000000H00000HFFFFFHFFFFFHA1910A1910.a1a1a0a0棧底棧底4EFFFH4EFFFH3F060H3F060H(SP)=60H(SP)=60H3F000H3F000H(SS)=3F00H(SS)=3F00H變址寄存器變址寄存器(SI(SI、DI

15、)DI) SI SI Source Index Register Source Index Register 源變址寄存器源變址寄存器 DIDI Destination Index Destination Index 目的變址寄存器目的變址寄存器使用場合:常用于變址尋址。使用場合:常用于變址尋址。一般與一般與DSDS聯(lián)用,用來確定數(shù)據(jù)段中某一存儲單元的地址,聯(lián)用,用來確定數(shù)據(jù)段中某一存儲單元的地址,SI , SI , DIDI具有自動增量和自動減量功能。具有自動增量和自動減量功能。例:例:MOV AX, SIMOV AX, SI通用寄存器通用寄存器在串處理指令中,在串處理指令中,SISI、DI

16、DI作為隱含的源變址和目的變址寄存器作為隱含的源變址和目的變址寄存器分別達(dá)到在數(shù)據(jù)段和附加段中尋址的目的。分別達(dá)到在數(shù)據(jù)段和附加段中尋址的目的。 如右圖。如右圖。例:例:MOV SI , 2000HMOV SI , 2000HMOV DI , 3000HMOV DI , 3000HMOV CX, 100HMOV CX, 100HCLD.CLD.MOVSBMOVSB. .3000H:2000H3000H:2000H3000H:2100H3000H:2100H5000H:3000H5000H:3000H5000H:3100H5000H:3100HDS:2000HDS:20FFHDS:2000HDS

17、:20FFHES:3000HES:30FFHES:3000HES:30FFH(DS)(DS)(SI)(SI)(ES)(ES)(DI)(DI)存儲器存儲器 串處理指令執(zhí)行示意圖串處理指令執(zhí)行示意圖段寄存器:段寄存器:4 4個(gè)個(gè)1616位段寄存器位段寄存器CSCS、DSDS、SSSS、ESES。用來識別當(dāng)前可尋址的四個(gè)段,不可互換的使用。用來識別當(dāng)前可尋址的四個(gè)段,不可互換的使用。CSCSCode Segment Register Code Segment Register 代碼段寄存器,用來識別當(dāng)前代代碼段寄存器,用來識別當(dāng)前代碼段(程序一般放在代碼段)。碼段(程序一般放在代碼段)。DSDSDa

18、ta Segment RegisterData Segment Register數(shù)據(jù)段寄存器,用來識別當(dāng)前數(shù)數(shù)據(jù)段寄存器,用來識別當(dāng)前數(shù)據(jù)段寄存器。據(jù)段寄存器。SSSSStack Segment RegisterStack Segment Register堆棧段寄存器,用來識別當(dāng)前堆堆棧段寄存器,用來識別當(dāng)前堆棧段。棧段。ESESExtra Segment RegisterExtra Segment Register附加段寄存器,用來識別當(dāng)前附附加段寄存器,用來識別當(dāng)前附加段。加段。段寄存器段寄存器IPIPInstruction PointerInstruction Pointer指令指針寄存

19、器指令指針寄存器用來存儲代碼段中的偏移地址用來存儲代碼段中的偏移地址; 16; 16位,為指令計(jì)數(shù),具有自動位,為指令計(jì)數(shù),具有自動加加1 1功能,指向下一個(gè)內(nèi)存單元,使指令能按順序執(zhí)行。程序運(yùn)功能,指向下一個(gè)內(nèi)存單元,使指令能按順序執(zhí)行。程序運(yùn)行過程中行過程中IPIP始終指向下一次要取出的指令偏移地址。始終指向下一次要取出的指令偏移地址。IPIP要與要與CSCS寄存器相配合才能形成真正的物理地址。寄存器相配合才能形成真正的物理地址。指令指針寄存器指令指針寄存器PSWPSW(Processor States Word ProgramProcessor States Word Program)

20、程序狀態(tài)字寄存器,程序狀態(tài)字寄存器, 1616位寄存器。位寄存器。 由條件碼標(biāo)志由條件碼標(biāo)志FLAGFLAG、控制標(biāo)志構(gòu)成。、控制標(biāo)志構(gòu)成。 只用了其中只用了其中9 9位位,6,6位條件碼標(biāo)志位條件碼標(biāo)志,3,3位控制標(biāo)志。位控制標(biāo)志。OFOF DFDF IFIF TFTF SFSF ZFZFAFAFPFPFCFCF0 015152 24 45 56 67 78 89 91010控制寄存器控制寄存器 O D I T S Z A P C 標(biāo)志寄存器標(biāo)志寄存器條件碼包括條件碼包括6位:位:CF 、 PF 、 AF 、 ZF 、 SF 、 OFOF(Overflow Flag)溢出標(biāo)志(一般指補(bǔ)碼溢

21、出)溢出標(biāo)志(一般指補(bǔ)碼溢出)OF=1:在運(yùn)算過程中,如操作數(shù)超過了機(jī)器表示的范圍稱為:在運(yùn)算過程中,如操作數(shù)超過了機(jī)器表示的范圍稱為溢出。溢出。OF=0:在運(yùn)算過程中,如操作數(shù)未超過了機(jī)器能表示的范圍:在運(yùn)算過程中,如操作數(shù)未超過了機(jī)器能表示的范圍稱為不溢出。稱為不溢出。字節(jié)允許范圍字節(jié)允許范圍 -128+127,字運(yùn)算范圍字運(yùn)算范圍 -32768+32767標(biāo)志寄存器標(biāo)志寄存器SF(Sign Flag)符號標(biāo)志)符號標(biāo)志 SF=1:記錄運(yùn)算結(jié)果的符號為負(fù)。:記錄運(yùn)算結(jié)果的符號為負(fù)。SF=0:記錄運(yùn)算結(jié)果的符號為正。:記錄運(yùn)算結(jié)果的符號為正。ZF(Zero Flag)零標(biāo)志)零標(biāo)志 ZF=1

22、:運(yùn)算結(jié)果為:運(yùn)算結(jié)果為0。 ZF=0:運(yùn)算結(jié)果不為:運(yùn)算結(jié)果不為0。CF(Carry Flag)進(jìn)位標(biāo)志)進(jìn)位標(biāo)志 CF=1:記錄運(yùn)算時(shí)從最高有效位產(chǎn)生進(jìn)位值。:記錄運(yùn)算時(shí)從最高有效位產(chǎn)生進(jìn)位值。CF=0:記錄運(yùn)算時(shí)從最高有效位不產(chǎn)生進(jìn)值。:記錄運(yùn)算時(shí)從最高有效位不產(chǎn)生進(jìn)值。標(biāo)志寄存器標(biāo)志寄存器AF(Auxiliary Carry Flag)輔助進(jìn)位標(biāo)志)輔助進(jìn)位標(biāo)志AF=1:記錄運(yùn)算時(shí)第:記錄運(yùn)算時(shí)第3位(半個(gè)字節(jié))產(chǎn)生進(jìn)位值。位(半個(gè)字節(jié))產(chǎn)生進(jìn)位值。AF=0:記錄運(yùn)算時(shí)第:記錄運(yùn)算時(shí)第3位(半個(gè)字節(jié))不產(chǎn)生進(jìn)位值。位(半個(gè)字節(jié))不產(chǎn)生進(jìn)位值。PF (Parity Flag) 奇偶標(biāo)志奇

23、偶標(biāo)志 PF=1: 結(jié)果操作數(shù)低結(jié)果操作數(shù)低8位中有偶數(shù)個(gè)位中有偶數(shù)個(gè)1。PF=0: 結(jié)果操作數(shù)低結(jié)果操作數(shù)低8位中有奇數(shù)個(gè)位中有奇數(shù)個(gè)1。標(biāo)志寄存器標(biāo)志寄存器對控制標(biāo)志位進(jìn)行設(shè)置后對控制標(biāo)志位進(jìn)行設(shè)置后,對其后的操作起控制作用。對其后的操作起控制作用??刂茦?biāo)志位包括控制標(biāo)志位包括3位:位:TF、IF、DF 。跟蹤(陷阱)標(biāo)志跟蹤(陷阱)標(biāo)志TF、中斷標(biāo)志、中斷標(biāo)志IF、方向標(biāo)志方向標(biāo)志DF。TF(Trap Flag)跟蹤跟蹤(陷阱陷阱)標(biāo)志位標(biāo)志位 TF=1 ,每執(zhí)行一條指令后,自動產(chǎn)生一次內(nèi)部中斷,使每執(zhí)行一條指令后,自動產(chǎn)生一次內(nèi)部中斷,使CPU處于單步執(zhí)行指令工作方式,便于進(jìn)行程序調(diào)試

24、,用戶能檢處于單步執(zhí)行指令工作方式,便于進(jìn)行程序調(diào)試,用戶能檢查程序。查程序。TF=0, CPU正常工作,不產(chǎn)生陷阱。正常工作,不產(chǎn)生陷阱。 控制標(biāo)志控制標(biāo)志IF(Interupt Flag)中斷標(biāo)志位中斷標(biāo)志位 IF=1, 允許外部可屏蔽中斷,允許外部可屏蔽中斷,CPU可以響應(yīng)可屏蔽中斷請求。可以響應(yīng)可屏蔽中斷請求。IF=0, 關(guān)閉中斷,關(guān)閉中斷,CPU禁止響應(yīng)可屏蔽中斷請求。禁止響應(yīng)可屏蔽中斷請求。IF的狀態(tài)對不可屏蔽中斷和內(nèi)部軟中斷沒有影響。的狀態(tài)對不可屏蔽中斷和內(nèi)部軟中斷沒有影響。DF(Direction Flag)方向標(biāo)志位方向標(biāo)志位 DF=1,每次串處理操作后使變址寄存器每次串處理

25、操作后使變址寄存器SI和和DI減量,使串處理減量,使串處理高地址向低地址方向處理。高地址向低地址方向處理。 DF=0,每次串處理操作后使變址寄每次串處理操作后使變址寄存器存器SI和和DI增量增量, 使串處理從低地址向高地址方向處理。使串處理從低地址向高地址方向處理。DF方向標(biāo)志位是在串處理指令中控制處理信息的方向用的。方向標(biāo)志位是在串處理指令中控制處理信息的方向用的??刂茦?biāo)志控制標(biāo)志控制信息:由系統(tǒng)程序或用戶程序根據(jù)需要用指令來設(shè)置的??刂菩畔ⅲ河上到y(tǒng)程序或用戶程序根據(jù)需要用指令來設(shè)置的。狀態(tài)信息:由中央處理器,根據(jù)計(jì)算結(jié)果自動設(shè)置的,機(jī)器提狀態(tài)信息:由中央處理器,根據(jù)計(jì)算結(jié)果自動設(shè)置的,機(jī)器

26、提供了設(shè)置狀態(tài)信息指令,必要時(shí),程序員可以用這些指令來建供了設(shè)置狀態(tài)信息指令,必要時(shí),程序員可以用這些指令來建立狀態(tài)信息。立狀態(tài)信息。標(biāo)志寄存器標(biāo)志寄存器1 10 00 00 01 11 10 01 10 00 00 01 10 01 10 00 00 00 01 11 10 00 01 10 00 00 00 01 11 10 00 01 1+ +0 01 11 11 11 10 01 10 01 10 01 10 01 10 01 10 0運(yùn)算結(jié)果最高位為運(yùn)算結(jié)果最高位為0 0SF=0 SF=0 運(yùn)算結(jié)果本身運(yùn)算結(jié)果本身0 0 ZF=0ZF=0低低8 8位中位中1 1的個(gè)數(shù)為奇數(shù)個(gè)的個(gè)數(shù)為

27、奇數(shù)個(gè) PF=0 PF=0 最高位沒有進(jìn)位最高位沒有進(jìn)位 CF=0CF=0第三位向第四位無進(jìn)位第三位向第四位無進(jìn)位 AF=0AF=0次高位向最高位沒有進(jìn)位,最高位向前沒有進(jìn)位次高位向最高位沒有進(jìn)位,最高位向前沒有進(jìn)位, OF=0, OF=0例例1 1:執(zhí)行兩個(gè)數(shù)的加法,分析對標(biāo)志位的影響。:執(zhí)行兩個(gè)數(shù)的加法,分析對標(biāo)志位的影響。運(yùn)算結(jié)果最高位為運(yùn)算結(jié)果最高位為1 1 SF=1SF=1運(yùn)算結(jié)果本身不為運(yùn)算結(jié)果本身不為0 0 ZF=0 ZF=0 最高位向前無進(jìn)位最高位向前無進(jìn)位CF=0 CF=0 次高位向最高位產(chǎn)生進(jìn)位,而最高位向前沒有進(jìn)位次高位向最高位產(chǎn)生進(jìn)位,而最高位向前沒有進(jìn)位 OF=1OF

28、=1結(jié)果低結(jié)果低8 8位含偶數(shù)個(gè)位含偶數(shù)個(gè)1 1PF=1PF=1第三位向第四位有進(jìn)位第三位向第四位有進(jìn)位AF=1AF=1在絕大多數(shù)情況下,一次運(yùn)算后并不影響所有標(biāo)志,程序也在絕大多數(shù)情況下,一次運(yùn)算后并不影響所有標(biāo)志,程序也并不需要對所有的標(biāo)志作全面的關(guān)注。一般只是在某些操作并不需要對所有的標(biāo)志作全面的關(guān)注。一般只是在某些操作后,對其中某個(gè)標(biāo)志進(jìn)行檢測。后,對其中某個(gè)標(biāo)志進(jìn)行檢測。例例2 2:執(zhí)行兩個(gè)數(shù)的加法,分析對標(biāo)志位的影響。:執(zhí)行兩個(gè)數(shù)的加法,分析對標(biāo)志位的影響。0 01 10 01 10 00 00 00 01 11 11 10 00 01 11 10 00 01 10 00 00 0

29、1 10 01 10 01 11 10 01 10 01 10 0+ +1 11 10 00 00 01 10 01 11 10 00 01 11 10 00 01 1AF=1AF=1OF=1OF=11、80 x86微處理器的結(jié)構(gòu)2、存儲器組織存儲單元的地址和內(nèi)容存儲單元的地址和內(nèi)容 存儲器位編號:存儲器位編號:80868086字長字長1616位,由二個(gè)字節(jié)組成,位編號如下:位,由二個(gè)字節(jié)組成,位編號如下: 高位字節(jié)高位字節(jié) MSBMSB(8 81515位)位)低位字節(jié)低位字節(jié)LSBLSB(0 07 7位)位) 0 01 12 23 34 45 56 67 78 89 910101111121

30、21313141415150 01 12 23 34 45 56 67 7存儲器組織存儲器組織 內(nèi)存單元的地址和內(nèi)容內(nèi)存單元的地址和內(nèi)容存儲單元地址存儲單元地址.1100 1111B1100 1111B.物理地址物理地址內(nèi)容內(nèi)容00000H00000H00001H00001H00002H00002H00006H00006HFFFFFHFFFFFH機(jī)器字長是機(jī)器字長是1616位,大部分?jǐn)?shù)據(jù)以字節(jié)為單位,大部分?jǐn)?shù)據(jù)以字節(jié)為單位表示,一個(gè)字存入存儲器占有相繼的二位表示,一個(gè)字存入存儲器占有相繼的二個(gè)單元:個(gè)單元:低位字節(jié)存入低地址,高位字節(jié)存入高地低位字節(jié)存入低地址,高位字節(jié)存入高地址。址。字單元的

31、地址采用它的低地址來表示。字單元的地址采用它的低地址來表示。例:字單元例:字單元: :(0004H0004H)=1234H =1234H 字節(jié)單元字節(jié)單元: :(0004H0004H)=34H=34H 34H34H12H12H1EH1EH2FH2FH0000H0000H0001H0001H0002H0002H0003H0003H0004H0004H0005H0005H0006H0006H.1234H1234H1235H1235H1236H1236H.存儲單元內(nèi)容存儲單元內(nèi)容存儲器分段CPU只能進(jìn)行16位運(yùn)算,尋址范圍64K,對于1M空間只能分段,將段起始地址放在段寄存器,稱為段基址,段起始地址

32、必須能被16整除。信息在1M空間內(nèi)的實(shí)際地址稱為物理地址。為20位,由16位段基址左移4位,再加上16位段內(nèi)偏移量也即由這兩部分邏輯地址相加。存儲器組織存儲器組織存儲器分段存儲器分段例:例: CS=2010H,IP=3550H (邏輯地址邏輯地址)20100H3550H=23650H (物理地址物理地址)取指令取指令CS+IP;物理地址;物理地址堆棧操作堆棧操作SS+SP操作數(shù)操作數(shù)DS+16; 位偏移量位偏移量數(shù)據(jù)塊移動數(shù)據(jù)塊移動ES+DI存儲器組織存儲器組織有有2020條地址線,可直接尋址條地址線,可直接尋址1M1M,地址范圍,地址范圍00000H00000HFFFFFHFFFFFH,每個(gè)

33、,每個(gè)地址可放一個(gè)字節(jié),相鄰兩地址可放一個(gè)字(低位在前,高位在地址可放一個(gè)字節(jié),相鄰兩地址可放一個(gè)字(低位在前,高位在后)。后)。存儲器特性:存儲器特性:存儲器的內(nèi)容是取之不盡的。即從某個(gè)單元取出其內(nèi)容后,該單存儲器的內(nèi)容是取之不盡的。即從某個(gè)單元取出其內(nèi)容后,該單元仍保持原來的內(nèi)容不變,可以重復(fù)取出;只有存入信息后,原元仍保持原來的內(nèi)容不變,可以重復(fù)取出;只有存入信息后,原有的內(nèi)容自動消失。有的內(nèi)容自動消失。存儲器組織存儲器組織存儲器地址分段:存儲器地址分段:80868086有有2020條地址總線,直接尋址能力為條地址總線,直接尋址能力為2 22020=1M=1M字節(jié)。字節(jié)。用用1616進(jìn)制

34、數(shù)表示進(jìn)制數(shù)表示1M1M字節(jié)的地址范圍應(yīng)為字節(jié)的地址范圍應(yīng)為00000HFFFFFH00000HFFFFFH。(1 1) 80868086內(nèi)部內(nèi)部2020位物理地址形成位物理地址形成(2 2)邏輯地址與物理地址)邏輯地址與物理地址存儲器組織存儲器組織存儲器地址分段存儲器地址分段80868086地址總線是地址總線是2020位的,位的,CPUCPU中的寄存器是中的寄存器是1616位的,位的,2020位地址無位地址無法用法用1616位寄存器表示,必須分段。位寄存器表示,必須分段。程序員在編制程序時(shí)把存儲器劃分成段。程序員在編制程序時(shí)把存儲器劃分成段。段內(nèi)地址段內(nèi)地址1616位位, ,每個(gè)段的大小最大

35、可達(dá)每個(gè)段的大小最大可達(dá)64KB64KB;實(shí)際可以根據(jù)需要;實(shí)際可以根據(jù)需要來確定段大小,可以是來確定段大小,可以是1 1,100100,10001000,在,在64K64K范圍內(nèi)的任意字節(jié)范圍內(nèi)的任意字節(jié)數(shù)。數(shù)。IBM PCIBM PC機(jī)對段的起始地址有限制,即段不能從任意地址開機(jī)對段的起始地址有限制,即段不能從任意地址開始:必須從任一小段的首地址開始。始:必須從任一小段的首地址開始。存儲器組織存儲器組織小段的概念小段的概念從從0 0地址開始每地址開始每1616字節(jié)為一小段,對于字節(jié)為一小段,對于1616位地址總線,段內(nèi)存儲位地址總線,段內(nèi)存儲器小段地址如下:器小段地址如下:如:如: 000

36、0H0000H,0001H0001H,0002H0002H,000EH000EH,000FH000FH一個(gè)小段一個(gè)小段 0010H0010H,0011H0011H,0012H0012H,001EH001EH,001FH001FH 0020H 0020H,0021H0021H,0022H0022H,002EH002EH,002FH002FH FFF0H, FFF1H, FFF2H, FFF0H, FFF1H, FFF2H, , FFFEH, FFFFH, FFFEH, FFFFH其中:第一列就是每個(gè)小段的首地址。其中:第一列就是每個(gè)小段的首地址。存儲器組織存儲器組織每個(gè)小段首地址特征:在每個(gè)小段

37、首地址特征:在1616進(jìn)制表示的地址中,最低位為進(jìn)制表示的地址中,最低位為0H0H(即(即2020位地址的低位地址的低4 4位為位為0000B0000B)。)。在在1M1M字節(jié)的地址空間,共有字節(jié)的地址空間,共有64K64K個(gè)小段其首地址為:個(gè)小段其首地址為:0000 0H0000 0H0001 0H0001 0HFFFE 0HFFFE 0HFFFF 0HFFFF 0H存儲器組織存儲器組織物理地址:物理地址: 在在1M1M字節(jié)存儲器里,每個(gè)存儲單元都有一個(gè)唯一的字節(jié)存儲器里,每個(gè)存儲單元都有一個(gè)唯一的2020位位地址作為該存儲單元的物理地址。地址作為該存儲單元的物理地址。CPUCPU訪問存儲器

38、時(shí),必須先確定訪問存儲器時(shí),必須先確定所要訪問的存儲單元的物理地址才能取出(或存入)該單元中的所要訪問的存儲單元的物理地址才能取出(或存入)該單元中的內(nèi)容。內(nèi)容。2020位物理地址形成:由位物理地址形成:由1616位段地址和位段地址和1616位偏移地址組成。位偏移地址組成。段地址:只取段起始地址高段地址:只取段起始地址高1616位值。位值。偏移地址:在段內(nèi)某內(nèi)存單元物理地址相對段起始地址的偏移值。偏移地址:在段內(nèi)某內(nèi)存單元物理地址相對段起始地址的偏移值。存儲器組織存儲器組織物理地址計(jì)算方法:物理地址計(jì)算方法:把段地址左移把段地址左移4 4位再加上偏移地址值形成物理地址,寫成:位再加上偏移地址值

39、形成物理地址,寫成:物理地址物理地址= 16d= 16d 段地址段地址+ +偏移地址。偏移地址。每個(gè)存儲單元只有唯一的物理地址。但可由不同的段地址和不同每個(gè)存儲單元只有唯一的物理地址。但可由不同的段地址和不同的偏移地址組成。的偏移地址組成。存儲器組織存儲器組織邏輯地址與物理地址概念邏輯地址與物理地址概念邏輯地址:由段基址和段內(nèi)偏移地址組成的地址,段基址和段邏輯地址:由段基址和段內(nèi)偏移地址組成的地址,段基址和段內(nèi)偏移地址都是內(nèi)偏移地址都是1616位的無符號二進(jìn)制數(shù),在程序設(shè)計(jì)時(shí)使用。位的無符號二進(jìn)制數(shù),在程序設(shè)計(jì)時(shí)使用。物理地址:存儲器的絕對地址(物理地址:存儲器的絕對地址(2020位的實(shí)際地址

40、)位的實(shí)際地址),范圍從范圍從00000H00000HFFFFFH, FFFFFH, 是由是由CPUCPU訪問存儲器時(shí)由地址總線發(fā)出的地址。訪問存儲器時(shí)由地址總線發(fā)出的地址。存儲器管理:將程序中邏輯地址轉(zhuǎn)移為物理地址的機(jī)構(gòu)。存儲器管理:將程序中邏輯地址轉(zhuǎn)移為物理地址的機(jī)構(gòu)。存儲器組織存儲器組織段基址段基址0 0 0 00 0 0 03 2 1 03 2 1 015 015 0偏移地址偏移地址基址加法器基址加法器物理地址物理地址0 015150 01919 物理地址的形成物理地址的形成.20000H20000H25F60H25F60H25F61H25F61H25F62H25F62H25F63H2

41、5F63H2000H2000H段基址段基址邏邏輯輯地地址址段內(nèi)偏移地址段內(nèi)偏移地址5F62H5F62H邏輯地址與物理地址邏輯地址與物理地址存儲器組織存儲器組織邏輯地址來源邏輯地址來源(ES) 16d+(DI)DI無無ES目標(biāo)字符串目標(biāo)字符串(DS) 16d+(SI)SICS,ES,SSDS源字符串源字符串(DS ) 16d+EA有效地址有效地址EACS,ES,SSDS存取變量存取變量(SS) 16d+EA有效地址有效地址EACS,DS,ESSSBP間址間址(SS) 16d+(SP)SP無無SS堆棧操作堆棧操作(CS) 16d+(IP)IP無無CS取指令取指令物理地址計(jì)算物理地址計(jì)算偏移偏移地址

42、地址可替換可替換段地址段地址正常使用(隱含)正常使用(隱含)段基址段基址操作類型操作類型取指令:自動選擇代碼段寄存器取指令:自動選擇代碼段寄存器CSCS,再加上由,再加上由IPIP決定的決定的1616位位偏移量,計(jì)算得到要取的指令偏移量,計(jì)算得到要取的指令2020位物理地址。位物理地址。堆棧棧頂操作:自動選擇堆棧段寄存器堆棧棧頂操作:自動選擇堆棧段寄存器SSSS,再加上由,再加上由SPSP決定決定的的1616位偏移量,計(jì)算得到堆棧棧頂操作需要的位偏移量,計(jì)算得到堆棧棧頂操作需要的2020位物理地址。位物理地址。存儲器組織存儲器組織涉及到操作數(shù):涉及到操作數(shù):自動選擇數(shù)據(jù)段寄存器自動選擇數(shù)據(jù)段寄

43、存器DSDS或附加段寄存器或附加段寄存器ESES,再加上,再加上1616位偏位偏移量,計(jì)算得到操作數(shù)的移量,計(jì)算得到操作數(shù)的2020位物理地址。位物理地址。其中:其中:1616位偏移量包含在:指令中的直接地址某個(gè)位偏移量包含在:指令中的直接地址某個(gè)1616位地址寄存器位地址寄存器的值指令中的位移量的值指令中的位移量+16+16位地址寄存器中值等。位地址寄存器中值等。1616位偏移量關(guān)鍵取決于指令的尋址方式。位偏移量關(guān)鍵取決于指令的尋址方式。存儲器組織存儲器組織代碼段代碼段數(shù)據(jù)段數(shù)據(jù)段堆棧段堆棧段CSCSIPIPDSDSSI,DI或BXSI,DI或BXSSSSSP或BPSP或BP歸納段寄存器和其他寄存器組合指向存儲單元如下:歸納段寄存器和其他寄存器組合指向存儲單元如下:存儲器組織存儲器組織各段在存儲器中分配各段在存儲器中分配(1 1)由操作系統(tǒng)負(fù)責(zé)分配)由操作系統(tǒng)負(fù)責(zé)分配一般情況,各段在存儲器中的分配是由操作系統(tǒng)負(fù)責(zé)。一般情況,各段在存儲器中的分配是由操作系統(tǒng)負(fù)責(zé)。每個(gè)段可以獨(dú)立地占用每個(gè)段可以獨(dú)立地占用64K64K存儲區(qū)。存儲區(qū)。(2 2)各段也可以允許重迭)各段也可以允許重迭每個(gè)段的大小允許根據(jù)實(shí)際需要分配,不一定要占每個(gè)段的大小允許根據(jù)實(shí)際需要分配,不一定要占64KB64KB。 每個(gè)存儲單元的內(nèi)容不允許發(fā)生沖突每個(gè)存儲單元的內(nèi)容不允許發(fā)生

溫馨提示

  • 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)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論