微機原理第三章_第1頁
微機原理第三章_第2頁
微機原理第三章_第3頁
微機原理第三章_第4頁
微機原理第三章_第5頁
已閱讀5頁,還剩50頁未讀 繼續免費閱讀

下載本文檔

版權說明:本文檔由用戶提供并上傳,收益歸屬內容提供方,若內容存在侵權,請進行舉報或認領

文檔簡介

1、微機原理第章微機系統中的微處理器 微處理器的一般結構微處理器的一般結構 311 微處理器的內部結構微處理器的內部結構 的基本功能:的基本功能:()() 進行算術和邏輯運算進行算術和邏輯運算()() 具有接收存儲器和具有接收存儲器和I/O接口來的數據和發送數據給存儲器和接口來的數據和發送數據給存儲器和I/O接口接口的能力的能力()() 可以暫存少量數據可以暫存少量數據()() 能對指令進行寄存、譯碼并執行指令所規定的操作能對指令進行寄存、譯碼并執行指令所規定的操作()() 能提供整個系統所需的定時和控制信號能提供整個系統所需的定時和控制信號()() 可響應設備發出的中斷請求。可響應設備發出的中斷

2、請求。3.1.2 處理器的外部結構 微處理器的外部就是輸入輸出引腳,這些引腳構成微處理器總線。總線按功能可以分為三種: (1)傳送信息的數據總線(Data Bus) (2)指示欲傳信息的來源或目的地址的地址總線(Address Bus) (3)管理總線上活動的控制總線(Control Bus) 3.2 3.2 微處理器的功能結構微處理器的功能結構 1. 8086CPU有20條地址線,可直接尋址能力達1MB。2. 8086CPU具有16條數據總線,內部總線和ALU均為16位,可進行8位和16位操作,是16位微處理器。3. 8086CPU由總線接口單元BIU(Bus Interface Unit)

3、和執行單元EU(Execution Unit)組成。 1. 4個16位段寄存器(:CS,SS,DS,ES)2. 16位指令指針IP(PC)3. 指令隊列寄存器、4. 完成與EU通訊的內部寄存器5. 由段寄存器保存的段地址和IP或EU部件提供的偏移地址(16位)形成20位物理地址的20位物理地址加法器和總線控制邏輯。對外提供16位雙向數據和20位物理地址總線,它的任務是執行總線周期,完成CPU與存儲器和I/O設備之間信息的傳送。 主要完成對外工作。總線接口單元BIUBIU的具體工作執行總線周期。完成CPU與存儲器和IO設備之間的信息傳送-從存儲器取指令-指令隊列-根據EU命令對存儲器或IO設備存

4、取數據執行單元EU的組成1.算術邏輯運算單元ALU2.暫存器3.標志寄存器(PSW)4.通用寄存器組和EU控制器構成。執行單元EU的任務1. 執行指令2. 進行全部算術邏輯運算3. 完成偏移地址的計算4. 向總線接口單元BIU提供指令執行結果的數據和偏移地址,并對通用寄存器和標志寄存器進行管理。 EU的工作就是執行指令。它專從BIU中的指令隊列中不斷的取指令并執行指令。 當執行轉移指令、調用指令和返回指令時,EU要等待BIU清除指令隊列,重新按照轉移目的地址取指令供EU執行,這時BIU取出的第一條指令直接送入EU去執行隨后取出的指令填入指令隊列。這時EU和BIU的并行操作會受到一定影響,但只要

5、發生程序轉移的概率不是很高,BIU與EU的并行工作方式仍將大大提高程序的運行速度。 當EU在執行指令過程中需要訪問存儲器或IO端口存取操作數時,EU首先向BIU發出請求,并提供操作數的有效地址,由BIU形成20位物理地址并訪問內存或IO端口,族取操作數送給EU使用. EU和BIU間既相互配合又相對獨立,稱異步工作方式,亦即并行流水線方式,它大大提高了CPU執行程序的速度。3.3 8086的寄存器結構的寄存器結構 8086CPU內部具有14個16位寄存器。 3.3.1通用寄存器 (1)數據寄存器 數據寄存器包括AX、BX、CX、DX。可寄存操作數和操作結果。每一個由可分成高8位和低8位兩個獨立的

6、8位寄存器來使用。16位數據寄存器主要用來存放數據,也可存放地址,8位寄存器(AH、AL、BH、BL、CH、CL、DH、DL)只能寄放數據。(2)地址指針和變址寄存器 SP(Stack Pointer)堆棧指針 BP(Base Pointer)基址指針 SI(Source Index)和DI(Destination Index)變址寄存器 以上寄存器主要用來存放地址,也可存放數據。 3.3.2 段寄存器組 訪問存儲器的地址碼有段地址和段內偏移地址兩部分組成。段寄存器用來存放段地址。總線接口單元BIU設置4個段寄存器,CPU可通過4個段寄存器訪問存儲器中4個不同的段(每段64K)。 代碼段寄存器

7、CS(Code Segment):存放當前執行程序所在段的段地址,CS的內容左移4位再加上指令指針IP的內容就是下一條要執行的指令地址。 數據段寄存器DS(Data Segment):存放當前數據段的段地址。 堆棧寄存器SS(Stack Segment):存放當前堆棧段的段地址。 附加段寄存器ES(Extra Segment):附加段是一個附加數據段。 段寄存器3.3.3 控制寄存器 (1)指令指針IP(Instruction Pointer) IP相當于程序計數器PC。保存下一條要執行的指令的偏移地址。在用戶程序中不能使用該寄存器,但可用DEBUG來調試修改。 (2)標志寄存器(FLAG)

8、就是處理器狀態字寄存器(PSW),一共兩個字節,9個標志。其中6個反映前一次ALU操作結果涉及的狀態標志,3個是控制CPU操作特征的控制標志。PF(Parity Flag)奇偶標志,低8位中含有偶數個1,PF=1 AF(Auxiliary Carry Flag)輔助進位標志,加法或減法運算時,D3位有進位或借位時 AF=1,主要用于BCD運算。 ZF(Zero Flag)零標志,結果為0, ZF=1 CF(Carry Flag)進位標志 SF(Sign Flag)符號標志,D7或D15=1,SF=1,表示負數 狀態標志(六個)OF標志,運算結果超出范圍,產生溢出,OF=1,否則OF=0;對于加

9、法運算,如果次高位形成進位加入最高位,而最高位相加時,卻沒有進位輸出;或次高位沒有進位加入最高位,但最高位卻有進位輸出,都將發生溢出,OF=1.減法同理。成為雙高原則:兩個高位都有進位或借位,運算不溢出,OF=0;兩個高位中只有一個有進位或借位,運算溢出,OF=1; OF(Overflow Flag)溢出標志控制標志 DF(Direction Flag)方向標志。可用指令預置,字符串操作時,DF=0,遞增;DF=1,地址遞減。 IF(Interrupt Enable Flag)中斷允許標志。IF=1,CPU響應可屏蔽中斷,IF=0,CPU不響應可屏蔽中斷。 TF(Trap Flag)陷阱標志,

10、TF=1,CPU處于單步執行方式。 3.4 8086的存儲器組織的存儲器組織 3.4.1 存儲器地址空間和數據存儲格式 存儲器地址空間 8086的存儲器是以字節(8 bit)為單位組成的。共有20條地址總線,可尋址的存儲器地址空間為220Byte(1MB)。每個字節對應一個唯一的地址,地址范圍0-220-1(000000FFFFFH)。 存儲器內兩個連續的字節定義為一個字(WORD)。每個字的低字節(低8位)存放在低地址中,高字節(高8位)存放在高地址中。字的地址指向低字節的地址。數據存儲格式 8086CPU數據總線16位,對于訪問(讀或寫)字節的指令,需要一個總線周期,對于訪問一個偶地址的字

11、的指令,也需要一個總線周期,而對于訪問一個奇地址的字的指令,需要兩個總線周期(CPU自動完成)。3.4.2 存儲器的分段和物理地址的形成 8086的地址總線20條,可尋址空間為1MB。BX、IP、SP、ALU等都是16位,只能直接處理16位地址(64KB)。8086CPU采用地址分段方法,將尋址空間擴大到1MB。 邏輯段 8086把1MB的存儲器空間分成若干個邏輯段,每段最多64KB。 各邏輯段的起始地址必須是能被16整除的地址,即低4位地址為0。 一個段的起始地址的高16位被稱為該段的段地址。段內偏移地址 在1MB的存儲器地址中可以有216個段地址。 每個段內的偏移地址稱為有效地址EA,偏移

12、地址也為16位。 一個段最大可以包括64BK的空間,相鄰兩個段的段地址最小相距16個字節,段與段可互相覆蓋。 每個存儲單元都有一個物理地址。而邏輯地址由段地址和偏移地址兩部分組成。 段地址和偏移地址都是無符號的16位二進制數(4位16進制)。邏輯地址的表示格式:段地址:偏移地址。 物理地址=段地址10H+偏移地址8086BIU中加法器用來完成物理地址的計算。 物理地址分段存儲示意圖舉例例如:某指令在代碼段中邏輯地址為:段首址CS2000H段內偏移地址IP5F62H,則其物理地址為(CS)x16+IP200Hx16+5F62H25F62H若該指令的段基址為CS2200H,而IP3F62H其物理地

13、址仍為25F62H3.4.3寄存器的關系信息的分段存儲與段 程序區:存儲程序的指令代碼; 數據區:存儲原始數據、中間結果和最后結果; 堆棧區:存儲需要壓入堆棧的數據或狀態信息。 代碼段寄存器CS劃定并控制程序區; 數據段寄存器DS和附加段寄存器ES控制數據區; 堆棧段寄存器SS對應堆棧存儲區。 各種類型訪問存儲器時的地址成分各種類型訪問存儲器時的地址成分 注意點 (1)段寄存器 訪問存儲器時,必須要有段寄存器,段寄存器可指定,也可以是默認的。 (2)重置段寄存器 DS、ES和SS內容可用傳送指令通過寄存器置入,但不能向CS置數。 (3)段內偏移地址來源 3.5 8086的的I/O組織組織 一般

14、外部設備的速度比CPU低得多,因此必須通過I/O接口與CPU連接,I/O接口是保證信息和數據在CPU與I/O設備之間正常傳送的電路。 I/O接口與CPU之間的通信是利用稱為I/O端口的寄存器來完成的。 一個I/O端口有一個唯一的I/O地址與之對應。8086的IO端口 8086地址總線的低16位用來對8位I/O端口尋址,可尋址65536個8位I/O口。 連續的兩個8位I/O端口可作為一個16位端口。 I/O端口尋址分為直接尋址和間接尋址。 3.6 8086的尋址方式的尋址方式 機器語言的一條指令包含操作碼(OP)和操作數,操作碼指明該指令進行什么操作,操作數指出該指令在執行規定操作時所需的信息。

15、規定操作數的方法,即指令中用于說明操作數所在地址的方法稱為尋址方式. 尋址方式可分為:數據尋址方式和轉移地址尋址方式。 3.6.1 數據尋址方式 (1)立即尋址 數據直接放在指令本身的最后一個(8位)或兩個字節(16位)。 注意: 1)立即數尋址方式只能用于源操作數。主要用于給寄存器賦值。 2)立即數尋址方式不執行總線周期,執行速度快。 3)立即數為16位時。低位字節存放在存儲器低地址單元,高位字節存放在存儲器高地址單元。該存儲器在CS段中(2)寄存器尋址 數據寄放在指令規定的寄存器中。 16位:AX,BX,CX,DX,SI,DI,SP,BP 8位:AL,AH,BL,BH,CL,CH,DL,D

16、H 注意: 1)寄存器尋址方式的指令操作在CPU內部執行。不需要執行總線周期,執行速度快。 2)寄存器尋址方式既適用于指令的源操作數,也適用于目的操作數,可同時用于源操作數和目的操作數。(3)直接尋址 操作數放在存儲單元中,段內偏移地址(16位有效地址)在指令碼中。有效地址(EA)也稱為偏移地址,它代表操作數所在存儲單元距離段首址的字節數。有效地址是一個無符號的16位二進制數。 注意: 1)直接尋址方式的操作數所在存儲單元的段地址一般在數據段寄存器DS中。 2)如果操作數在其他段,則需要在指令中用段超越前綴指出相應的段寄存器名 (4)寄存器間接尋址 操作數在存儲單元中,其有效地址在指令碼指明的

17、基址寄存器BX或變址寄存器S I或DI之中。(BX)EA= (SI)(DI) 當使用寄存器BX、SI、DI時,操作數所在存儲單元的段地址存在數據段寄存器DS中。物理地址的計算方法為: 物理地址=16(DS)十(BX) (寄存器SI、DI類同)(5)寄存器相對尋址 操作數在存儲單元中,其有效地址是一個8位或16位的位移量(用disp表示)與一個基址寄存器或變址寄存器的內容之和。Disp和這個寄存器在指令碼中給出。 (BX) 8位dispEA= (BP) + (SI) 16位disp (DI)計算操作數所在存儲單元的物理地址時與寄存器間接尋址方式相同使用寄存器BX、SI、DI時與數據段寄存器DS有

18、關,使用寄存器BP時與堆棧段寄存器SS有關。以寄存器SI、8位位移量為例,物理地址為 物理地址16(DS)十(SI)十DISP8 (使用寄存器BX,DI相同)以寄存器BP、l 6位位移量為例,物理地址為 物理地址16(SS)十(BP)+DISPl6(6)基址變址尋址 當使用基址寄存器BX時,段寄存器為DS,物理地址計算方法為: 物理地址16(DS)十(BX)十(SI) (使用寄存器DI類同)當使用基址寄存器BP時,段寄存器為SS,其物理地址計算方法為: 物理地址=16(SS)十(BP)十(SI) (使用寄存器DI類同)(7)基址變址且相對尋址 當使用基址寄存器BX時,段寄存器為DS,物理地址計算方法為:物理地址=16(DS)+(BX)+ +當使用基址寄存器BP時,段寄存器為SS,物理地址計算方法為:物理地址=16(SS)+(BP)+ +)()(DISI168DISPDISP)()(DISI168DISPDISP(8)隱含尋址 指令碼中不包含指明操作數尋址的部分,而其操作碼本身隱含地指明了操作數地址。例如字符串操作指令。 例 如 : 若 ( D S ) = 4 1 0 0 H ,(BX)=237DH,(SI)=1C

溫馨提示

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

評論

0/150

提交評論