




版權說明:本文檔由用戶提供并上傳,收益歸屬內容提供方,若內容存在侵權,請進行舉報或認領
文檔簡介
1、16位和32位微處理器1第二章第二章 微處理器及其系統微處理器及其系統8086/80888086/80888086/8088 8086/8088 的寄存器結構的寄存器結構8086/8088 8086/8088 的存儲器的存儲器80 x8680 x8616位和32位微處理器2Intel 8086的結構Intel 8086的編程結構Intel 8086的寄存器結構Intel 8086的存儲器編址和I/O編址16位和32位微處理器3Intel 8086的結構編程結構:從程序員和使用者的角度來看的結構。編程結構:從程序員和使用者的角度來看的結構。 這種結構與這種結構與CPUCPU內部的物理結構和實際布
2、局有區別。內部的物理結構和實際布局有區別。分兩部分:分兩部分:1 1、總線接口單元、總線接口單元 BIU BIU (Bus Interface UnitBus Interface Unit)2 2、執行部件、執行部件 EU EU (Execution UnitExecution Unit)16位和32位微處理器4Intel 8086的結構特點的結構特點 (1) 內部結構內部結構 是是16位的位的 (內部寄存器,內部運算部件,內部操作按(內部寄存器,內部運算部件,內部操作按 16位設計);位設計); (2)外部數據總線外部數據總線16條,能處理條,能處理16位數據位數據,也能處理也能處理8位數據
3、;位數據; (具有(具有16位運算指令)位運算指令) (3) 匯編語言與匯編語言與8080/8085兼容,即能執行整套兼容,即能執行整套 8080/8085的指令的指令. 增加了許多增加了許多16位操作指令;位操作指令; (4) 20條地址總線,直接尋址能力條地址總線,直接尋址能力1M字節;字節; (5) 40條引線封裝;條引線封裝; (6) 單相時鐘;單相時鐘; (7) 電源為電源為5V。 8086與與8088的主要區別在于的主要區別在于8086的外部數據總線的外部數據總線16位。位。16位和32位微處理器5CHDHDISPBPSI65標志3執行部分控制電路運算寄存器ALU1 24DSSSE
4、S輸入/輸出控制電路IPCS內部暫存器BHAHDLCLALBL20 位地址加法16 位外部總線指令隊列緩沖器8 位16 位通用寄存器執行部件(EU)總線接口部件(BIU)8086編程結構編程結構16位和32位微處理器6(1)總線接口單元)總線接口單元 BIU功能:功能: 負責與負責與 存儲器、存儲器、I/O I/O 端口傳送數據。端口傳送數據。具體講:具體講: 總線接口部件要從內存總線接口部件要從內存 取指令送到指令隊列;取指令送到指令隊列; CPUCPU執行指令時,要配合執行部件從指定的內存單元執行指令時,要配合執行部件從指定的內存單元 或者外設端口中取數據,將數據傳送給執行部件;或者外設端
5、口中取數據,將數據傳送給執行部件; 或把執行部件的操作結果傳送給指定的或把執行部件的操作結果傳送給指定的MM或或I/OI/O口。口。1 1、總線接口單元、總線接口單元 BIUBIU(Bus Interface UnitBus Interface Unit)16位和32位微處理器7q 4 個段地址寄存器(個段地址寄存器(CS、DS、ES、SS),),q 16位指令指針寄存器位指令指針寄存器IP,q 20位的地址加法器位的地址加法器(16d 段地址段地址+偏移地址物理地址偏移地址物理地址),q 6字節(字節(8086)或)或4字節(字節(8088)的指令隊列)的指令隊列,q 總線控制電路總線控制電
6、路: 處理器與外界總線聯系的轉接電路。處理器與外界總線聯系的轉接電路。包括三組總線:包括三組總線:20 位地址總線,位地址總線, 16 位位(8086)或或8位(位(8088)雙向數據總)雙向數據總線,一組控制總線。線,一組控制總線。(2 2)總線接口單元)總線接口單元 BIU BIU 組成組成16位和32位微處理器8 指令隊列指令隊列8086 8086 的指令隊列為的指令隊列為6 6個字節個字節, ,8088 8088 的指令隊列為的指令隊列為4 4個字節。個字節。不論是不論是80868086還是還是80888088都會在執行指令的同時從內存中都會在執行指令的同時從內存中取下一條或幾條指令,
7、取來的指令放在指令隊列中,使取下一條或幾條指令,取來的指令放在指令隊列中,使 BIU BIU 具有預取指令的功能,是一種先進先出(具有預取指令的功能,是一種先進先出(FIFOFIFO)的)的數據結構。數據結構。(3 )說說 明明16位和32位微處理器9說說 明明 指令執行順序指令執行順序順序指令執行:指令隊列存放緊接在執行指令后面的那順序指令執行:指令隊列存放緊接在執行指令后面的那一條指令。一條指令。執行轉移指令:執行轉移指令:BIU BIU 清除指令隊列中的內容,從新的清除指令隊列中的內容,從新的地址取入指令,立即送往執行單元,然后再從新單地址取入指令,立即送往執行單元,然后再從新單元開始重
8、新填滿隊列。元開始重新填滿隊列。16位和32位微處理器10地址加法器的作用:用來形成20位物理地址,如CS=F010H,IP=1000H,則要訪問的物理地址是:CS*16+IP=F1100H說說 明明16位和32位微處理器11(1 1)、)、 功能:負責指令執行。功能:負責指令執行。(2 2)、)、 組成:組成:q 4 4個通用寄存器:個通用寄存器:AXAX、BXBX、CXCX、DX;DX;q 4 4個專用寄存器:個專用寄存器:BPBP、SPSP、SISI、DI;DI;q 標志寄存器(標志寄存器(PSWPSW):): 9 9個標志位,其中個標志位,其中6 6個條件標志位用于存放結果狀態個條件標
9、志位用于存放結果狀態; ;2、EU (Execution Unit)執行單元)執行單元16位和32位微處理器12q 算術邏輯單元:算術邏輯單元: 16 16 位加法器,用于對寄存器和指令操作數進行算術或位加法器,用于對寄存器和指令操作數進行算術或邏輯運算;邏輯運算;q EU EU 控制系統:控制系統: 接受從總線接口單元的指令隊列中取來的指令代碼,對接受從總線接口單元的指令隊列中取來的指令代碼,對其譯碼和向其譯碼和向 EU EU 內各有關部分發出時序命令信號,協調內各有關部分發出時序命令信號,協調執行指令規定的操作。執行指令規定的操作。16位和32位微處理器13 由此可見,由此可見,8086/
10、80888086/8088取指部分與執行部取指部分與執行部分是分開的。分是分開的。在一條指令的執行過程中可以取出下一條(或多在一條指令的執行過程中可以取出下一條(或多條)指令,指令條)指令,指令 在指令隊列中排隊;在指令隊列中排隊;在一條指令執行完成后在一條指令執行完成后, ,就可以立即執行下一條就可以立即執行下一條指令,減少指令,減少CPUCPU為取指令而等待的時間,提高為取指令而等待的時間,提高CPUCPU的利用率和整個運行速度。的利用率和整個運行速度。16位和32位微處理器14BIU和和EU分開,取指和執行可以重迭,分開,取指和執行可以重迭,大大減少了等待取指所需的時間,提高大大減少了等
11、待取指所需的時間,提高CPU的利用率。的利用率。重迭操作技術:一方面提高了整個執行速率,重迭操作技術:一方面提高了整個執行速率, 另一方面降低了與之相配的存儲器的存取速度的要求。另一方面降低了與之相配的存儲器的存取速度的要求。取指取指取指取指取指取指取指取指得到數據得到數據等待等待執行執行執行執行執行執行執行執行8086/8088微處理器:16位和32位微處理器15 程序執行由取指令和執行指令的循環來完成的,每條指程序執行由取指令和執行指令的循環來完成的,每條指令執行完后令執行完后CPU必須等待到下條指令取出來后才能執行。必須等待到下條指令取出來后才能執行。取指取指執行執行取指取指執行執行.取
12、指取指執行執行時間坐標時間坐標對于8080與8085及較早的8位微處理器:16位和32位微處理器162 Intel 8086的寄存器結構AHAHALALBHBHBLBLCHCHCLCLDHDHDLDLSPSPBPBPSISIDIDIIPIPPSWPSWCSCSDSDSSSSSESESAXAXBXBXCXCXDXDX累加器累加器基址基址計數計數數據數據數據寄存器數據寄存器0 015150 07 78 815150 015150 01515附加數據段附加數據段堆棧段堆棧段數據段數據段代碼段代碼段段寄存器段寄存器指令指針指令指針狀態標志狀態標志控制寄存器控制寄存器堆棧指針堆棧指針基址指針基址指針 源
13、變址源變址目的變址目的變址指針寄存器指針寄存器變址寄存器變址寄存器通通用用寄寄存存器器16位和32位微處理器17Intel 8086的寄存器結構標志寄存器標志寄存器OFOF DFDF IFIF TFTF SFSF ZFZFAFAFPFPFCFCF0 015152 24 45 56 67 78 89 9101016位和32位微處理器181 1、通用寄存器、通用寄存器通用寄存器包括:通用寄存器包括: 數據寄存器、地址指針寄存器、變址寄存器。數據寄存器、地址指針寄存器、變址寄存器。 數據寄存器包括數據寄存器包括: AX : AX 、BX BX 、CX CX 、DX DX 。 地址指針寄存器包括地址指
14、針寄存器包括: SP : SP 、 BP BP 。 變址寄存器包括變址寄存器包括: SI : SI 、 DI DI 。2 2、段寄存器、段寄存器 段寄存器包括段寄存器包括: CS : CS 、 SS SS 、 DS DS 、 ES ES 。3 3、控制寄存器、控制寄存器 控制寄存器包括:控制寄存器包括:IP IP 、PSWPSW。Intel 8086的寄存器結構16位和32位微處理器191 1、通用寄存器、通用寄存器(1 1)數據寄存器)數據寄存器AXAX、BXBX、CXCX、DX DX 作為通用寄存器。作為通用寄存器。 用來暫存計算過程中所用到的操作數,結果或其它信息。用來暫存計算過程中所用
15、到的操作數,結果或其它信息。 訪問形式訪問形式: : 可以用字(可以用字(16位)位)的形式訪問的形式訪問; ;也可以用字節(也可以用字節(8 8位)形式訪問位)形式訪問, ,它們的高它們的高8 8位記作位記作 : AH : AH 、 BH BH 、 CH CH 、 DH DH 。它們的低它們的低8 8位記作位記作 : AL : AL 、BL BL 、CL CL 、DL DL 。Intel 8086的寄存器結構16位和32位微處理器20AX(Accumulator)作為累加器。)作為累加器。 它是算術運算的主要寄存器,所有它是算術運算的主要寄存器,所有I/O指令都使用指令都使用這一寄存器與外部
16、設備交換數據。這一寄存器與外部設備交換數據。例:例: IN AL , 20HOUT 30H , AXIntel 8086的寄存器結構16位和32位微處理器21BXBase用作基址寄存器使用。用作基址寄存器使用。 在計算內存儲器地址時,經常用來存放基址。在計算內存儲器地址時,經常用來存放基址。例:例:MOV AX, BX+03HIntel 8086的寄存器結構16位和32位微處理器22CXCount可以作計數寄存器使用。可以作計數寄存器使用。 在循環在循環LOOP指令和串處理指令中用作隱含計數器。指令和串處理指令中用作隱含計數器。例:例:MOV CX , 200HAGAIN:LOOP AGAIN
17、 ;(;(CX)-1(CX),結果結果 0轉轉AGAINIntel 8086的寄存器結構16位和32位微處理器23DXDataDXData可以作為數據寄存器使用。可以作為數據寄存器使用。一般在雙字長乘除法運算時,一般在雙字長乘除法運算時, 把把DXDX和和AXAX組合在一起存放一個雙組合在一起存放一個雙字長字長(32(32位位) )數,數,DXDX用來存放高用來存放高1616位位; ; 對某些對某些I/OI/O操作操作DXDX可用來存放可用來存放I/OI/O的端口地址(口地址的端口地址(口地址 256256)。)。例:例:MUL BX MUL BX ; (AX); (AX) (BX)(BX)(
18、DX)(AX)(DX)(AX)例例: :IN AL , DXIN AL , DXIntel 8086的寄存器結構16位和32位微處理器24(2)地址指針與變址寄存器)地址指針與變址寄存器: 段起始地址段起始地址 SP、BP、SI、DI 四個四個16位寄存器。位寄存器。以字為單位在運算過程中存放操作數,以字為單位在運算過程中存放操作數,經常用以在段內尋址時提供偏移地址。經常用以在段內尋址時提供偏移地址。 段內偏移地址段內偏移地址段地址段地址 :只取段起始地址高只取段起始地址高16位值。位值。偏移地址偏移地址:指在段內某內存單元物理地址相對段起始地址的偏移值。指在段內某內存單元物理地址相對段起始地
19、址的偏移值。 高高16位值位值 0000BIntel 8086的寄存器結構16位和32位微處理器25地址指針寄存器地址指針寄存器(SP 、 BP ) SP(stack pointer)堆棧指針寄存器堆棧指針寄存器 用來指示棧頂的偏移地址用來指示棧頂的偏移地址, 必須與必須與SS段寄存器聯合使用確定實際地址。段寄存器聯合使用確定實際地址。 堆棧和指針如下頁圖所示。堆棧和指針如下頁圖所示。 BP(base pointer)基址指針寄存器基址指針寄存器 可以與可以與SS寄存器聯合使用來確定堆棧段中某一存儲器單元地址。寄存器聯合使用來確定堆棧段中某一存儲器單元地址。Intel 8086的寄存器結構16
20、位和32位微處理器268086系統存儲器與總線連接系統存儲器與總線連接堆棧和指針堆棧和指針設設: ( SS)=3F00H,(SP)=0060H堆棧和指針如下圖:堆棧和指針如下圖:堆棧是內存開辟的一個特殊數據區,一端固定,一端浮動,堆棧是內存開辟的一個特殊數據區,一端固定,一端浮動,嚴格按照后進先出的工作原則。嚴格按照后進先出的工作原則。數據總線數據總線地址總線地址總線D7D0D7D01 M X 81 M X 8位存儲體位存儲體A19A0A19A000000H00000HFFFFFHFFFFFHA19A0A19A0.a1a1a0a0棧底棧底4EFFFH4EFFFH3F060H3F060H(SP)
21、=60H(SP)=60H3F000H3F000H(SS)=3F00H(SS)=3F00H16位和32位微處理器27 變址寄存器變址寄存器(SI 、 DI)SISource Index Register 源變址寄存器。源變址寄存器。DIDestination Index 目的變址寄存器。目的變址寄存器。使用場合:常用于變址尋址。使用場合:常用于變址尋址。 一般與一般與DS聯用,用來確定數據段中某一存儲單元的地址,聯用,用來確定數據段中某一存儲單元的地址, SI , DI具有自動增量和自動減量功能具有自動增量和自動減量功能.例:例:MOV AX, SIIntel 8086的寄存器結構16位和32位
22、微處理器28在串處理指令中,在串處理指令中,SI、DI作為隱含的源變址和目的變址寄作為隱含的源變址和目的變址寄 存器分別達到在數據段和附加段中尋址的目的。存器分別達到在數據段和附加段中尋址的目的。 執行示意圖如右圖。執行示意圖如右圖。例:例:MOV SI , 2000HMOV DI , 3000HMOV CX, 100HCLD.MOVSB.3000H:2000H3000H:2000H3000H:2100H3000H:2100H5000H:3000H5000H:3000H5000H:3100H5000H:3100HDS:2000HDS:20FFHDS:2000HDS:20FFHES:3000HE
23、S:30FFHES:3000HES:30FFH(DS)(DS)(SI)(SI)(ES)(ES)(DI)(DI)存儲器存儲器 串處理指令執行示意圖串處理指令執行示意圖16位和32位微處理器292、段寄存器、段寄存器段寄存器段寄存器: 4個個16位段寄存器位段寄存器CS、DS、SS、ES。用來識別當前可尋址的四個段,不可互換的使用。用來識別當前可尋址的四個段,不可互換的使用。CSCode Segment Register 代碼段寄存器代碼段寄存器 用來識別當前代碼段(程序一般放在代碼段)。用來識別當前代碼段(程序一般放在代碼段)。DSData Segment Register數據段寄存器數據段寄存
24、器 用來識別當前數據段寄存器。用來識別當前數據段寄存器。SSStack Segment Register堆棧段寄存器,堆棧段寄存器, 用來識別當前堆棧段。用來識別當前堆棧段。ESExtra Segment Register附加段寄存器,附加段寄存器, 用來識別當前附加段。用來識別當前附加段。16位和32位微處理器303、控制寄存器、控制寄存器控制寄存器:控制寄存器:IP 、 PSWIPInstruction Pointer指令指針寄存器指令指針寄存器 用來存儲代碼段中的偏移地址用來存儲代碼段中的偏移地址; 程序運行過程中程序運行過程中IP始終指向下一次要取出的指令偏移地址。始終指向下一次要取出
25、的指令偏移地址。 IP要與要與CS寄存器相配合才能形成真正的物理地址。寄存器相配合才能形成真正的物理地址。PSW(Processor States Word Program)程序狀態字寄存器,程序狀態字寄存器, 16位寄存器。位寄存器。 由狀態標志、控制標志構成。由狀態標志、控制標志構成。只用了其中只用了其中9位位, 6位狀態標志位狀態標志 , 3位控制標志。如下表示。位控制標志。如下表示。OFOF DFDF IFIF TFTF SFSF ZFZFAFAFPFPFCFCF0 015152 24 45 56 67 78 89 9101016位和32位微處理器31q狀態標志狀態標志: :用來記錄程
26、序中運行結果的狀態信息作為用來記錄程序中運行結果的狀態信息作為后續條件轉移指令的轉移控制條件。后續條件轉移指令的轉移控制條件。狀態包括狀態包括6 6位:位:CF CF 、 PF PF 、 AF AF 、 ZF ZF 、 SF SF 、 OF OF 。 OFOF(Overflow FlagOverflow Flag)溢出標志(一般指補碼溢出)溢出標志(一般指補碼溢出)OF=1OF=1:在運算過程中,如操作數超過了機器表示的范圍稱為溢:在運算過程中,如操作數超過了機器表示的范圍稱為溢出。出。OF=0OF=0:在運算過程中,如操作數未超過了機器能表示的范圍稱:在運算過程中,如操作數未超過了機器能表示
27、的范圍稱為不溢出。為不溢出。字節允許范圍字節允許范圍 -128+127-128+127,字運算范圍字運算范圍 -32768+32767 -32768+32767 。16位和32位微處理器32SF(Sign Flag)符號標志)符號標志 SF=1:記錄運算結果的符號為負。:記錄運算結果的符號為負。SF=0:記錄運算結果的符號為正。:記錄運算結果的符號為正。ZF(Zero Flag)零標志)零標志 ZF=1:運算結果為:運算結果為0。 ZF=0:運算結果不為:運算結果不為0。CF(Carry Flag)進位標志)進位標志 CF=1:記錄運算時從最高有效位產生進位值。:記錄運算時從最高有效位產生進位
28、值。CF=0:記錄運算時從最高有效位不產生進值。:記錄運算時從最高有效位不產生進值。16位和32位微處理器33 AF(Auxiliary Carry Flag)輔助進位標志)輔助進位標志AF=1:記錄運算時第:記錄運算時第3位(半個字節)產生進位值。位(半個字節)產生進位值。AF=0:記錄運算時第:記錄運算時第3位(半個字節)不產生進位值。位(半個字節)不產生進位值。 PF(Parity Flag)奇偶標志奇偶標志 PF=1: 結果操作數低結果操作數低8位中有偶數個位中有偶數個1。PF=0: 結果操作數低結果操作數低8位中有奇數個位中有奇數個1。用來為機器中傳送信息時可能產生的代碼出現情況提供
29、檢驗條用來為機器中傳送信息時可能產生的代碼出現情況提供檢驗條件。件。16位和32位微處理器34q 控制標志控制標志:對控制標志位進行設置后對控制標志位進行設置后,對其后的操作起控對其后的操作起控制作用。制作用。控制標志位包括控制標志位包括3位位: TF、 IF 、 DF 。 跟蹤(陷阱)標志跟蹤(陷阱)標志TF、中斷標志、中斷標志IF 、方向標志方向標志 DF 。 TF(Trap Flag)跟蹤跟蹤(陷阱陷阱)標志位標志位 TF=1 ,每執行一條指令后,自動產生一次內部中斷,每執行一條指令后,自動產生一次內部中斷,使使CPU處于單步執行指令工作方式,便于進行程序調試,用處于單步執行指令工作方式
30、,便于進行程序調試,用戶能檢查程序。戶能檢查程序。 TF=0, CPU正常工作,不產生陷阱。正常工作,不產生陷阱。 16位和32位微處理器35IF(InteruptIF(Interupt Flag) Flag)中斷標志中斷標志 位位 IF=1, IF=1, 允許外部可屏蔽中斷允許外部可屏蔽中斷。CPUCPU可以響應可屏蔽中斷請求。可以響應可屏蔽中斷請求。 IF=0, IF=0, 關閉中斷關閉中斷。CPUCPU禁止響應可屏蔽中斷請求。禁止響應可屏蔽中斷請求。 IFIF的狀態對不可屏蔽中斷和內部軟中斷沒有影響。的狀態對不可屏蔽中斷和內部軟中斷沒有影響。 DFDF( (DirectionDirect
31、ion Flag) Flag)方向標志位方向標志位 DF=1,DF=1,每次每次串處理操作串處理操作后使變址寄存器后使變址寄存器SISI和和DIDI減量減量,使串處理從,使串處理從高地址向低地址方向處理。高地址向低地址方向處理。 DF=0,DF=0,每次每次串處理操作串處理操作后使變址寄存器后使變址寄存器SISI和和DIDI增量增量, , 使串處理從使串處理從低地址向高地址方向處理。低地址向高地址方向處理。 DFDF方向標志位是在串處理指令中控制處理信息的方向標志位是在串處理指令中控制處理信息的方向方向用的。用的。16位和32位微處理器36控制信息控制信息: :由系統程序或用戶程序根據需要用指
32、令來設置的。由系統程序或用戶程序根據需要用指令來設置的。 狀態信息狀態信息: :由中央處理器由中央處理器, ,根據計算結果自動設置的,根據計算結果自動設置的, 機器提供了設置狀態信息指令機器提供了設置狀態信息指令, ,必要時必要時, ,程序員可以用程序員可以用這些指令來建立狀態信息。這些指令來建立狀態信息。16位和32位微處理器371 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
33、 01 10 01 10 0標志標志: 運算結果最高位為運算結果最高位為0SF=0; 運算結果本身運算結果本身0 ZF=0 低低8位中位中1的個數為奇數個的個數為奇數個 PF=0; 最高位沒有進位最高位沒有進位 CF=0 第三位向第四位無進位第三位向第四位無進位 AF=0; 次高位向最高位沒有進位次高位向最高位沒有進位 ,最高位向前沒有進位,最高位向前沒有進位 , OF=0。例例1:執行兩個數的加法,分析對標志位的影響。:執行兩個數的加法,分析對標志位的影響。16位和32位微處理器38標志標志:運算結果最高位為運算結果最高位為1, SF=1 ;運算結果本身不為運算結果本身不為0, ZF=0 ;
34、最高位向前無進位,最高位向前無進位, CF=0 次高位向最高位產生進位次高位向最高位產生進位,而最高位向前沒有進位,而最高位向前沒有進位, OF=1 ;結果低結果低8位含偶數個位含偶數個1, PF=1 ;第三位向第四位有進位第三位向第四位有進位, AF=1 。在絕大多數情況下,一次運算后并不影響所有標志,在絕大多數情況下,一次運算后并不影響所有標志,程序也并不需要對所有的標志作全面的關注。程序也并不需要對所有的標志作全面的關注。一般只是在某些操作后一般只是在某些操作后,對其中某個標志進行檢測。對其中某個標志進行檢測。例例2:執行兩個數的加法,分析對標志位的影響。:執行兩個數的加法,分析對標志位
35、的影響。0 01 10 01 10 00 00 00 01 11 11 10 00 01 11 10 00 01 10 00 00 01 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=116位和32位微處理器復位后相關寄存器的初始狀態復位后相關寄存器的初始狀態寄存器寄存器初始狀態初始狀態寄存器寄存器初始狀態初始狀態狀態標志寄存器狀態標志寄存器清清0 0IP0000HCSFFFFHDS0000HSS0000HES0000H指令隊列寄存器指令隊列寄存器
36、清空清空其他寄存器其他寄存器0000H16位和32位微處理器40q1 1、存儲單元的地址和內容、存儲單元的地址和內容q2 2、存儲器地址分段、存儲器地址分段q3 3、各段在存儲器中分配、各段在存儲器中分配3 80863 8086的存儲器編址和的存儲器編址和I/OI/O編址編址16位和32位微處理器411 1、存儲單元的地址和內容及與、存儲單元的地址和內容及與CPUCPU之間數據傳送之間數據傳送(1 1)、)、存儲單元的地址和內容存儲單元的地址和內容 存儲器位編號:存儲器位編號:80888088字長字長1616位,由二個字節組成,位編號如下:位,由二個字節組成,位編號如下: 高位字節高位字節 M
37、SBMSB(8 81515位)位) 低位字節低位字節LSBLSB(0 07 7位)位) 80888088內部的內部的 ALU ALU 能進行能進行16 16 位運算。位運算。 有關地址寄存器如有關地址寄存器如 SPSP、IPIP、BPBP、SISI、DI DI 等都是等都是1616位的。位的。0 01 12 23 34 45 56 67 78 89 91010111112121313141415150 01 12 23 34 45 56 67 716位和32位微處理器42 內存單元的地址和內容內存單元的地址和內容存儲單元地址:按照字節編址存儲單元地址:按照字節編址.1100 1111B1100
38、 1111B.物理地址物理地址內容內容00000H00000H00001H00001H00002H00002H00006H00006HFFFFFHFFFFFH16位和32位微處理器43存儲單元的的內容:存儲單元的的內容:一個存儲單元有效的信息。一個存儲單元有效的信息。機器字長是機器字長是1616位,位, 大部分數據以字節為單位表示,大部分數據以字節為單位表示, 一個字存入存儲器占有相繼的二個單元:一個字存入存儲器占有相繼的二個單元: 低位字節存入低地址,高位字節存入高地址。低位字節存入低地址,高位字節存入高地址。 字單元的地址采用它的低地址來表示。字單元的地址采用它的低地址來表示。例:例:字單
39、元字單元 : :(0004H0004H)=1234H, =1234H, 字節單元字節單元 : :(0004H0004H)=34H=34H 同一個地址既可以看作字節單元地址,同一個地址既可以看作字節單元地址, 又可看作字單元地址,需要根據使用情況確定。又可看作字單元地址,需要根據使用情況確定。字單元地址:可以是偶數也可以是奇數,字單元地址:可以是偶數也可以是奇數,34H34H12H12H1EH1EH2FH2FH0000H0000H0001H0001H0002H0002H0003H0003H0004H0004H0005H0005H0006H0006H.1234H1234H1235H1235H123
40、6H1236H.16位和32位微處理器44(2)、CPU和存儲器或和存儲器或I/O端口之間傳送數據端口之間傳送數據 8086 8086數據總線是數據總線是16位的。位的。討論討論CPU和存儲器和存儲器或或I/O端口之間傳送數據方式:端口之間傳送數據方式:q 字數據讀字數據讀/寫操作寫操作q 字節讀字節讀/寫操作寫操作16位和32位微處理器45q字數據讀字數據讀/寫操作寫操作(a) 操作數存放在偶地址開始兩個存儲單元或兩個操作數存放在偶地址開始兩個存儲單元或兩個 I/O端口中:端口中: 即操作數字的低即操作數字的低8位位在偶地址單元或在偶地址單元或 在偶地址端口;在偶地址端口; 高高8位位在奇地
41、址單元或在奇地址端口。在奇地址單元或在奇地址端口。在一個總線周期內完成(通常在一個總線周期內完成(通常4個時鐘周期)個時鐘周期)16位數據傳送,位數據傳送,操作數必須存放在偶地址開始兩個存儲單元或兩個操作數必須存放在偶地址開始兩個存儲單元或兩個 I/O端口中。端口中。16位和32位微處理器圖 存儲體與總線的連接DBD15D8 D7D0 奇存儲體 A0ABBHEA19 A1偶存儲體 CSA19A1D7D0 CSA19A1D7D0 8086CPU訪問(讀或寫)存儲器由信號BHE和A0組合形成。 16位和32位微處理器47CPUCPU低8位數據低8位數據高8位數據高8位數據高8位數據線低地址低地址高
42、地址高地址奇地址奇地址偶地址偶地址內存內存讀/寫偶地址字讀/寫偶地址字低8位數據線低8位數據線對應的偶地址單元對應的偶地址單元/偶地址端口偶地址端口數據通過數據總線低數據通過數據總線低8位傳輸。位傳輸。對應的奇地址單元對應的奇地址單元/奇地址端口奇地址端口數據通過數據總線高數據通過數據總線高8位傳輸。位傳輸。字數據字數據讀讀/寫偶地址字操作如下圖:寫偶地址字操作如下圖:16位和32位微處理器48操作數存放在奇地址開始兩個存儲單元或兩個操作數存放在奇地址開始兩個存儲單元或兩個 I/O端口中端口中如下圖所示:如下圖所示:讀讀/寫奇地址字寫奇地址字數據數據數據數據CPUCPU空閑空閑奇地址奇地址偶地
43、址偶地址高地址高地址低地址低地址內存內存第一個總線周期第一個總線周期數據數據數據數據CPUCPU奇地址奇地址偶地址偶地址高地址高地址低地址低地址內存內存第二個總線周期第二個總線周期空閑空閑16位和32位微處理器49在第一個總線周期中在第一個總線周期中:對應于奇地址單元或奇地址端口字節(操作字低對應于奇地址單元或奇地址端口字節(操作字低8位)位)通過數據總線高通過數據總線高8位進行傳輸,而數據總線低位進行傳輸,而數據總線低8位處于空閑狀態;位處于空閑狀態;在第二個總線周期中在第二個總線周期中: 對應于偶地址單元或偶地址端口字節(操作字高對應于偶地址單元或偶地址端口字節(操作字高8位)位)通過數據
44、總線低通過數據總線低8位進行傳輸,而數據總線高位進行傳輸,而數據總線高8位處于空閑狀態位處于空閑狀態.由此可見,由此可見, 操作數存放在奇地址開始兩個存儲單元操作數存放在奇地址開始兩個存儲單元/兩個兩個 I/O端口中進行端口中進行數據傳輸,數據傳輸,8086需要二個總線周期。需要二個總線周期。16位和32位微處理器50q 字節讀字節讀/寫操作:寫操作: 對偶地址單元對偶地址單元/偶地址端口的字節數據進行讀偶地址端口的字節數據進行讀/寫寫如下圖所示:如下圖所示:在一個總線周期中,只有數據總線的低在一個總線周期中,只有數據總線的低8位傳輸數據,位傳輸數據, 高高8位處于空閑狀態。位處于空閑狀態。數
45、據數據CPUCPU偶地址偶地址高地址高地址低地址低地址內存內存空閑空閑奇地址奇地址 讀/寫偶地址字節 讀/寫偶地址字節16位和32位微處理器51 對奇地址單元對奇地址單元/奇地址端口的字節數據進行讀奇地址端口的字節數據進行讀/寫寫如下圖所示:如下圖所示: 在一個總線周期中,只有數據總線的高在一個總線周期中,只有數據總線的高8位傳輸數據,位傳輸數據, 而低而低8位處于空閑狀態。位處于空閑狀態。數據數據CPUCPU空閑空閑奇地址奇地址高地址高地址低地址低地址內存內存偶地址偶地址讀/寫奇地址字節讀/寫奇地址字節16位和32位微處理器52 80888088數據總線只有數據總線只有8位。位。討論討論CP
46、U和存儲器和存儲器或或I/O端口端口 之間傳送數據:之間傳送數據:每個總線周期只傳輸每個總線周期只傳輸1個字節,個字節,所以對每個字操作要增加所以對每個字操作要增加4個時鐘周期。個時鐘周期。 (4)、存儲器特性:)、存儲器特性:存儲器的內容是取之不盡的。存儲器的內容是取之不盡的。 即從某個單元取出其內容后,該單元仍保持原來的內容即從某個單元取出其內容后,該單元仍保持原來的內容 不變,可以重復取出;不變,可以重復取出; 只有存入信息后,原有的內容自動消失。只有存入信息后,原有的內容自動消失。16位和32位微處理器538086有有20條地址總線,直接尋址能力為條地址總線,直接尋址能力為220=1M
47、字節。字節。用用16進制數表示進制數表示1M字節的地址范圍應為字節的地址范圍應為00000HFFFFFH。(1)、)、 8086內部內部20位物理地址形成位物理地址形成(2)、邏輯地址與物理地址)、邏輯地址與物理地址2、存儲器地址分段:、存儲器地址分段:16位和32位微處理器54 (1)、)、8088內部內部20位物理地址形成位物理地址形成 存儲器地址分段存儲器地址分段 8088地址總線是地址總線是20位的,位的,CPU中的寄存器是中的寄存器是16位的,位的,20位地址無法用位地址無法用16位寄存器表示,必須分段。位寄存器表示,必須分段。程序員在編制程序時把存儲器劃分成段。程序員在編制程序時把
48、存儲器劃分成段。段內地址段內地址16位位,每個段的大小最大可達每個段的大小最大可達64KB;實際可以根據需要來確定段大小,可以是實際可以根據需要來確定段大小,可以是1,100,1000,在在64K范圍內的任意字節數。范圍內的任意字節數。IBM PC機對段的起始地址有限制,機對段的起始地址有限制,即段不能從任意地址開始:即段不能從任意地址開始:必須從任一小段(必須從任一小段(paragraph)的首地址開始。)的首地址開始。16位和32位微處理器55 小段的概念小段的概念從從0地址開始每地址開始每16字節為一小段,字節為一小段,對于對于16位地址總線,段內存儲器小段地址如下:位地址總線,段內存儲
49、器小段地址如下:如:如: 0000H,0001H,0002H,000EH,000FH一個小段一個小段 0010H,0011H,0012H,001EH,001FH 0020H,0021H,0022H,002EH,002FH FFF0H, FFF1H, FFF2H, , FFFEH, FFFFH 其中:第一列就是每個小段的首地址。其中:第一列就是每個小段的首地址。16位和32位微處理器56每個小段首地址特征:每個小段首地址特征:在在1616進制表示的地址中,最低位為進制表示的地址中,最低位為0H0H(即(即2020位地址的低位地址的低4 4位為位為0000B0000B)。)。在在1M1M字節的地址
50、空間,共有字節的地址空間,共有64K64K個小段其首地址為:個小段其首地址為:0000 0H0000 0H0001 0H0001 0H4123 0H4123 0H4124 0H4124 0HFFFE 0HFFFE 0HFFFF 0HFFFF 0H16位和32位微處理器57 20位物理地址形成位物理地址形成 物理地址:物理地址: 在在1M字節存儲器里,每個存儲單元都有一個唯一的字節存儲器里,每個存儲單元都有一個唯一的20位地位地址作為該存儲單元的物理地址。址作為該存儲單元的物理地址。CPU訪問存儲器時,必須先確定所要訪問的存儲單元的訪問存儲器時,必須先確定所要訪問的存儲單元的物理地址才能取出(或
51、存入)該單元中的內容。物理地址才能取出(或存入)該單元中的內容。 20位物理地址形成:由位物理地址形成:由16位段地址和位段地址和16位偏移地址組成。位偏移地址組成。段地址段地址:只取段起始地址高只取段起始地址高16位值。位值。偏移地址偏移地址:指在段內某內存單元物理地址相對段起始地址的偏移指在段內某內存單元物理地址相對段起始地址的偏移值。值。16位和32位微處理器58物理地址計算方法:物理地址計算方法:即把段地址左移即把段地址左移4位再加上偏移地址值形成物理地址,寫成:位再加上偏移地址值形成物理地址,寫成: 物理地址物理地址= 16d 段地址段地址+偏移地址。偏移地址。 * 每個存儲單元只有
52、唯一的物理地址。每個存儲單元只有唯一的物理地址。 但可由不同的段地址和不同的偏移地址組成。但可由不同的段地址和不同的偏移地址組成。16位段地址16位段地址0000000016位偏移地址16位偏移地址0 015150 0151520位物理地址20位物理地址0 01919+ +16位和32位微處理器59(3)、邏輯地址與物理地址)、邏輯地址與物理地址 邏輯地址與物理地址概念邏輯地址與物理地址概念 邏輯地址與物理地址概念如下頁圖所示。邏輯地址與物理地址概念如下頁圖所示。邏輯地址:由段基址和段內偏移地址組成的地址,邏輯地址:由段基址和段內偏移地址組成的地址, 段基址和段內偏移地址都是段基址和段內偏移地
53、址都是16位的無符號二進制數,位的無符號二進制數, 在程序設計時使用。在程序設計時使用。物理地址:存儲器的絕對地址(物理地址:存儲器的絕對地址(20位的實際地址)位的實際地址), 范圍從范圍從00000HFFFFFH , 是由是由CPU訪問存儲器時訪問存儲器時 由地址總線發出的地址。由地址總線發出的地址。存儲器管理:將程序中邏輯地址轉移為物理地址的機構。存儲器管理:將程序中邏輯地址轉移為物理地址的機構。16位和32位微處理器60段基址段基址0 0 0 00 0 0 03 2 1 03 2 1 015 015 0偏移地址偏移地址基址加法器基址加法器物理地址物理地址0 015150 01919 物
54、理地址的形成物理地址的形成.20000H20000H25F60H25F60H25F61H25F61H25F62H25F62H25F63H25F63H2000H2000H段基址段基址邏邏輯輯地地址址段內偏移地址段內偏移地址5F62H5F62H邏輯地址與物理地址邏輯地址與物理地址16位和32位微處理器61邏輯地址來源邏輯地址來源操作類型操作類型正常使用(隱含)正常使用(隱含)段基址段基址可替換可替換段地址段地址偏移偏移地址地址物理地址計算物理地址計算取指令取指令CS無無IP(CS) 16d+(IP)堆棧操作堆棧操作SS無無SP(SS) 16d+(SP)BP間址間址SSCS,DS,ES有效地址有效地
55、址EA (SS) 16d+EA存取變量存取變量DSCS,ES,SS有效地址有效地址EA (DS ) 16d+EA源字符串源字符串DSCS,ES,SSSI(DS) 16d+(SI)目標字符串目標字符串ES無無DI(ES) 16d+(DI)16位和32位微處理器62取指令:取指令:自動選擇代碼段寄存器自動選擇代碼段寄存器CS,再加上由再加上由IP決定的決定的16位偏移量,位偏移量,計算得到要取的指令計算得到要取的指令20位物理地址。位物理地址。堆棧棧頂操作:堆棧棧頂操作:自動選擇堆棧段寄存器自動選擇堆棧段寄存器SS,再加上由再加上由SP決定的決定的16位偏移量,位偏移量,計算得到堆棧棧頂操作需要的
56、計算得到堆棧棧頂操作需要的20位物理地址。位物理地址。16位和32位微處理器63涉及到操作數:涉及到操作數:自動選擇數據段寄存器自動選擇數據段寄存器DS或附加段寄存器或附加段寄存器ES,再加上再加上16位偏移量,計算得到操作數的位偏移量,計算得到操作數的20位物理地址。位物理地址。其中:其中:16位偏移量位偏移量: 包含在:指令中的直接地址包含在:指令中的直接地址 某個某個16位地址寄存器的值位地址寄存器的值 指令中的位移量指令中的位移量+16位地址寄存器中值等。位地址寄存器中值等。 16位偏移量關鍵取決于指令的尋址方式。位偏移量關鍵取決于指令的尋址方式。16位和32位微處理器64代碼段代碼段
57、數據段數據段堆棧段堆棧段CSCSIPIPDSDSSI,DI或BXSI,DI或BXSSSSSP或BPSP或BP段寄存器和其他寄存器組合指向存儲單元示意圖段寄存器和其他寄存器組合指向存儲單元示意圖歸納段寄存器和其他寄存器組合指向存儲單元示意圖如下:歸納段寄存器和其他寄存器組合指向存儲單元示意圖如下:16位和32位微處理器653 3、各段在存儲器中分配、各段在存儲器中分配 各段在存儲器中分配分各段在存儲器中分配分4 4種情況討論:種情況討論:(1 1)由操作系統負責分配)由操作系統負責分配一般情況,各段在存儲器中的分配是由操作系統負責。一般情況,各段在存儲器中的分配是由操作系統負責。每個段可以獨立地
58、占用每個段可以獨立地占用64K64K存儲區。存儲區。(2 2)各段也可以允許重迭)各段也可以允許重迭 每個段的大小允許根據實際需要分配,不一定要占每個段的大小允許根據實際需要分配,不一定要占64KB64KB。 每個存儲單元的內容不允許發生沖突每個存儲單元的內容不允許發生沖突 (段可重迭,但使用時防止沖突)。(段可重迭,但使用時防止沖突)。16位和32位微處理器66( 3 3)在程序的首部設定各段寄存器的值)在程序的首部設定各段寄存器的值如果程序中的四個段都是如果程序中的四個段都是64K64K的范圍之內,的范圍之內,程序運行時所需要的信息都在本程序所定義的段區之內,程序運行時所需要的信息都在本程
59、序所定義的段區之內,程序員只要在程序的首部設定各段寄存器的值就可以了。程序員只要在程序的首部設定各段寄存器的值就可以了。 ( 4 4)動態地修改段寄存器的內容)動態地修改段寄存器的內容 如果程序的某一段(如數據段)在程序運行過程如果程序的某一段(如數據段)在程序運行過程中會超過中會超過64K64K空間,或者程序中可能訪問除本身四個段以空間,或者程序中可能訪問除本身四個段以外的其他段區的信息,外的其他段區的信息, 那么在程序中必須動態地修改段那么在程序中必須動態地修改段寄存器的內容。寄存器的內容。16位和32位微處理器6764K程序64K程序64K數據64K數據64K堆棧64K堆棧00000H0
60、0000H01000H01000H21000H21000H46000H46000H64K附加數據64K附加數據A0000HA0000H0100H0100H2100H2100H4600H4600HA000HA000H段寄存器段寄存器CSCSDSDSSSSSESES4K程序4K程序2K數據2K數據100H堆棧100H堆棧00000H00000H01000H01000H02000H02000HA0000HA0000H0100H0100H0200H0200H0280H0280H段寄存器段寄存器CSCSDSDSSSSS02800H02800H64KB為一段為一段代碼段范圍代碼段范圍:01000H10FF
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯系上傳者。文件的所有權益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網頁內容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
- 4. 未經權益所有人同意不得將文件中的內容挪作商業或盈利用途。
- 5. 人人文庫網僅提供信息存儲空間,僅對用戶上傳內容的表現方式做保護處理,對用戶上傳分享的文檔內容本身不做任何修改或編輯,并不能對任何下載內容負責。
- 6. 下載文件中如有侵權或不適當內容,請與我們聯系,我們立即糾正。
- 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 2025-2030中國有機農產品行業市場深度發展趨勢與前景展望戰略研究報告
- 2025-2030中國新零售行業市場發展分析及前景趨勢與投資研究報告
- 2025-2030中國建筑招投標+互聯網行業市場深度分析及發展前景與投資研究報告
- 2025-2030中國廣告飲料陳列柜和冷凍柜行業市場現狀供需分析及投資評估規劃分析研究報告
- 2025-2030中國學生校服行業發展分析及發展前景與投資研究報告
- 2025年膠管總成管路連接行業深度研究分析報告
- 2025-2030年中國重型聚氨酯復合篩網行業深度研究分析報告
- 2025-2030年中國塑料印刷化工原料行業深度研究分析報告
- 吉林省液壓升降平臺項目可行性研究報告
- 2025-2030年中國機房傳輸配套項目投資可行性研究分析報告
- 中國銀聯招聘筆試題庫2024
- 2024安徽制造業發展報告
- 四年級下冊道德與法治(教學設計+素材)第8課《這些東西哪里來》(第二課時)
- 高職旅游專業《旅行社經營管理》說課稿
- DB65-T 4785-2024 耕地質量等級調查評價技術規范
- 財務機器人開發與應用實戰 課件 任務5 E-mail人機交互自動化-2
- 2024年個人廉潔自律述職報告(三篇)
- 【華為】通信行業:華為下一代鐵路移動通信系統白皮書2023
- 小學家長會-做好孩子手機管理主題班會課件
- Python 程序設計智慧樹知到期末考試答案章節答案2024年四川師范大學
- 山東省技能大賽青島選拔賽-世賽選拔項目55樣題(3D數字游戲技術)
評論
0/150
提交評論