第1節(jié) 8086微處理器內(nèi)部基本結(jié)構(gòu)_第1頁
第1節(jié) 8086微處理器內(nèi)部基本結(jié)構(gòu)_第2頁
第1節(jié) 8086微處理器內(nèi)部基本結(jié)構(gòu)_第3頁
第1節(jié) 8086微處理器內(nèi)部基本結(jié)構(gòu)_第4頁
第1節(jié) 8086微處理器內(nèi)部基本結(jié)構(gòu)_第5頁
已閱讀5頁,還剩22頁未讀 繼續(xù)免費閱讀

下載本文檔

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

文檔簡介

第2章8086CPU結(jié)構(gòu)2.18086微處理器內(nèi)部基本結(jié)構(gòu)2.28086總線的工作周期2.38086微處理器外部基本引腳與工作模式2.48086微處理器的存儲器組織2.58086微處理器的時序2.6Intel80x86系列微處理器簡介2.7例題解析8086和8088CPU的區(qū)別:8086和8088CPU的內(nèi)部基本相同,但它們的外部性能是有區(qū)別的。8086是16位數(shù)據(jù)總線,而8088是8位數(shù)據(jù)總線,在處理一個16位數(shù)據(jù)字時,8088需要兩步操作而8086只需要一步。8086和8088CPU的內(nèi)部都采用16位字進行操作及存儲器尋址,兩者的軟件完全兼容,程序的執(zhí)行也完全相同。然而,由于8088要比8086有較多的外部存取操作,所以,對相同的程序,它將執(zhí)行得較慢。這兩種微處理器都封裝在相同的40腳雙列直插組件(DIP:DoubleIn-linePackage)中。2.18086微處理器內(nèi)部基本結(jié)構(gòu)2.1.18086/8088CPU的內(nèi)部結(jié)構(gòu)8086CPU芯片16位字長雙列直插式40根引腳下一頁2.18086微處理器內(nèi)部基本結(jié)構(gòu)2.1.18086/8088CPU的內(nèi)部結(jié)構(gòu)兩個部件可以并行執(zhí)行,實現(xiàn)指令取指和執(zhí)行的流水線操作8086/8088的內(nèi)部結(jié)構(gòu),按功能劃分,可分成兩個部件總線接口部件BIU(businterfaceunit,BIU)執(zhí)行部件EU(executionunit,EU)兩個部件相互獨立(類似于左右手),分別完成各自操作管理8086與系統(tǒng)總線的接口,負責CPU對存儲器和外設(shè)進行訪問負責指令的譯碼、執(zhí)行和數(shù)據(jù)的運算1234內(nèi)部暫存器

IP

ES

SSDSCS控制電路外部總線控制電路∑ALU標志寄存器AHALBHBLCHCLDHDLSPBPSIDI通用寄存器地址加法器指令隊列執(zhí)行部件(EU)總線接口部件(BIU)16位20位16位8位段寄存器8088的內(nèi)部結(jié)構(gòu)返回AH

ALBHBLCHCLDHDLSPBPDISICSDSSSESIP內(nèi)部寄存器暫存寄存器標志執(zhí)行部分控制電路

123456輸入/輸出控制電路外部總線指令隊列緩沖器Σ地址加法器20位16位8位16位ALU執(zhí)行部件EU總線接口部件BIU

通用寄存器返回本節(jié)8086的內(nèi)部結(jié)構(gòu)1.執(zhí)行部件EUEU的組成①算術(shù)邏輯運算單元ALU(Arithmetic[?'riθm?tik]

LogicalUnit)它包括4個16位的數(shù)據(jù)寄存器AX、BX、CX、DX和4個16位指針與變址寄存器SP、BP與SI、DI。1個16位的寄存器,用來反映CPU運算的狀態(tài)特征和存放某些控制標志。④數(shù)據(jù)暫存寄存器它負責從BIU的指令隊列緩沖器中取指令,并對指令譯碼,根據(jù)指令要求向EU內(nèi)部各部件發(fā)出控制命令,以完成各條指令規(guī)定的功能。它是1個16位的運算器,可用于8位、16位二進制算術(shù)和邏輯運算,也可按指令的尋址方式計算尋址存儲器所需的16位偏移量。②通用寄存器組(Generalregister)③標志寄存器FR(FlagRegister)它協(xié)助ALU完成運算,暫存參加運算的數(shù)據(jù)。⑤EU控制電路返回2.總線接口部件BIU的組成總線接口單元BIU由1個20位地址加法器、4個16位段寄存器、1個16位指令指針I(yè)P、指令隊列緩沖器和總線控制邏輯電路等組成。8086的指令隊列由6個字節(jié)構(gòu)成,8088的指令隊列由4個字節(jié)構(gòu)成。地址加法器將16位的段寄存器內(nèi)容左移4位,與16位偏移地址相加,形成20位的物理地址。指令指針I(yè)P用來存放下一條要執(zhí)行指令在代碼段中的偏移地址。當EU正在執(zhí)行指令且不需占用總線時,BIU會自動地進行預取指令操作,將所取得的指令按先后次序存入1個6字節(jié)的指令隊列寄存器,該隊列寄存器按“先進先出”的方式工作,并按順序取到EU中執(zhí)行。④總線控制邏輯電路①地址加法器(Addressadder)和段寄存器(Segmentregister

)②16位指令指針I(yè)P(Instructionpointer)③指令隊列(Instructionqueue)緩沖器返回將內(nèi)部總線和外部總線相連8086CPU內(nèi)部寄存器如圖2.2所示。(Generalregister)2.1.28086CPU寄存器結(jié)構(gòu)﹜控制寄存器數(shù)據(jù)寄存器數(shù)據(jù)寄存器用來存放計算的結(jié)果和操作數(shù)每個寄存器又有它們各自的專用目的:AX:基址寄存器,常用來做基址指針,指向一批連續(xù)存放操作數(shù)的基地址。計數(shù)器(counter),作為循環(huán)和串操作等指令中的隱含計數(shù)器。DX:數(shù)據(jù)寄存器,用來存放外設(shè)端口的地址,或雙字長數(shù)據(jù)的高16位。CX:BX:16位累加器,用于算術(shù)、邏輯運算以及與外設(shè)傳送信息等;AL:8位累加器(accumulator)。變址寄存器變址寄存器常用于存儲器尋址時,提供內(nèi)存的偏移地址SI是源變址寄存器(sourceindex)DI是目的變址寄存器(destinationindex)在串操作類指令中,SI和DI具有特別的功能指針寄存器指針寄存器用于尋址內(nèi)存堆棧內(nèi)的數(shù)據(jù)SP(棧頂指針)(stackpointer)為堆棧指針寄存器,指示棧頂?shù)钠频刂?。SP不能再用于其他目的,具有專用性BP(basepointer)為基址指針寄存器,表示數(shù)據(jù)在堆棧段中的基地址SP/BP寄存器與SS段寄存器聯(lián)合使用以確定堆棧段中的存儲單元地址指令指針寄存器IP(Instructionpointer)指令指針寄存器IP,指示代碼段中指令的偏移地址它與代碼段寄存器CS聯(lián)用,確定下一條指令的物理地址計算機通過CS:IP寄存器來取指,從而控制指令序列的執(zhí)行流程IP寄存器是一個專用寄存器,用戶不能直接訪問。指令指針寄存器IP(Instructionpointer)CS(codesegment)——16位代碼段寄存器;DS(datasegment)——16位數(shù)據(jù)段寄存器;ES(extrasegment)——16位附加段寄存器;SS(stacksegment)——16位堆棧段寄存器。4個段地址寄存器(Segmentregister

IP指向下一次要取出的指令地址。在目標程序運行時,IP的內(nèi)容由微處理器硬件自動設(shè)置,程序不能直接訪問IP,但一些指令卻可改變IP的值,如轉(zhuǎn)移指令、子程序調(diào)用指令等。實模式存儲器尋址時物理地址的計算方法OF111512DF10IF9TF8SF7ZF65AF43PF21CF0控制反映結(jié)果狀態(tài)反應(yīng)運算過程/結(jié)果標志寄存器FR(Flagregister)、FLAGS、PSW(programstatusword)標志(Flag)用于反映指令執(zhí)行結(jié)果或控制指令執(zhí)行形式。8086處理器中各種常用的標志形成了一個16位的標志寄存器FLAGS(也稱程序狀態(tài)字PSW寄存器)。標志的作用反映了當前運算和操作結(jié)果的狀態(tài)條件,可作為控制程序轉(zhuǎn)移與否的依據(jù)。標志分成兩類:狀態(tài)標志:OF

CF

SF

ZF

PF

AF用戶根據(jù)需要用指令進行設(shè)置,用于控制處理器的具體工作方式。記錄程序運行結(jié)果的狀態(tài)信息,許多指令的執(zhí)行都將自動地改變它??刂茦酥荆篋F

IF

TF(系統(tǒng)標志)溢出標志OF(OverflowFlag)若算術(shù)運算的結(jié)果有溢出,則OF=1;否則OF=0。例如:3AH+7CH=產(chǎn)生溢出:OF=1AAH+7CH=?jīng)]有溢出:OF=0問題:什么是溢出?溢出和進位有什么區(qū)別?處理器怎么處理,程序員如何運用?如何判斷是否溢出?B6H(設(shè)字長為8位!)數(shù)的表示范圍:帶符號數(shù)字節(jié)運算:-128~+127字運算:無符號數(shù)-32768~+32767字節(jié)運算:0~+255字運算:0~+6553526H00111010B10110110B01111100B+=10101010B+01111100B100100110B進位,丟掉十進制二進制十六進制十進制十六進制n=8n=16+127011111117F+327677FFF+126011111107E+327667FFE......……...+20000001002+20002+10000000101+100010000000000000000-111111111FF-1FFFF-211111110FE-2FFFE......……...-1261000001082-327668002-1271000000181-327678001-1281000000080-327688000n位二進制補碼的表示數(shù)范圍:

-2n-1≤N≤2n-1-1無符號整數(shù)的表示數(shù)范圍:0≤N≤2n-1符號標志SF(SignFlag)運算結(jié)果最高位為1,則SF=1;否則SF=0。例如:3AH+7CH=B6H最高位D7=1:SF=184H+7CH=00H最高位D7=0:SF=0有符號數(shù)利用最高有效位(MSB)(MostSignificantBit)來表示它的符號。所以,運算結(jié)果的MSB與符號標志SF相一致。進位標志CF(CarryFlag)當運算結(jié)果的最高有效位有進位(加法)或借位(減法)時,進位標志置1,即CF=1;否則CF=0。例如(以8位運算為例):3AH+7CH沒有進位:CF=0AAH+7CH有進位:CF=100111010B10110110B01111100B+==B6H10101010B+01111100B100100110B=26H奇偶標志PF(ParityFlag)當運算結(jié)果低字節(jié)中“1”的個數(shù)為零或偶數(shù)時,PF=1;否則PF=0(奇校驗)。例如:3AH+7CH=B6H=10110110B,結(jié)果中有5個1,是奇數(shù),則PF=0PF僅反映低8位中“1”的個數(shù)是偶或奇,即使是進行16位字操作。注意:零標志位ZF(zeroFlag)若算術(shù)運算的結(jié)果為0,則ZF=1;否則ZF=0。例如:3AH+(-3AH)=0結(jié)果為0:ZF=1AAH+7CH結(jié)果非0:ZF=010101010B+01111100B100100110B進位,丟掉=26H輔助進位標志AF(Auxiliary[?:g'zilj?ri]CarryFlag)運算時D3位(低半字節(jié))有進位或借位時,AF=1;否則AF=0。例如:3AH+7CH=B6HD3向前有進位:AF=1用于十進制算術(shù)運算的調(diào)整,用戶一般不必關(guān)心。方向標志DF(DirectionFlag)用于串操作指令中,控制地址的變化方向:設(shè)置DF=0,串操作后存儲器地址自動增量(增址);設(shè)置DF=1,串操作后存儲器地址自動減量(減址)。STD指令置位方向標志:DF=1CLD指令復位方向標志:DF=000111010B10110110B01111100B+=中斷允許標志IF(Interrupt-enableFlag)用于控制外部可屏蔽中斷是否可以被處理器響應(yīng):設(shè)置IF=1,則允許中斷;設(shè)置IF=0,則禁止中斷。CLI指令復位中斷標志:IF=0STI指令置位中斷標志:IF=1陷阱標志TF(TrapFlag)用于控制處理器是否進入單步執(zhí)行方式:設(shè)置TF=0,處理器正常工作;設(shè)置TF=1,處理器每執(zhí)行一條指令就中斷一次,中斷編號為1(稱單步中斷)TF

也被稱為單步標志。單步執(zhí)行和單步調(diào)試這種逐條指令調(diào)試程序的方法就是單步調(diào)試。利用單步中斷可對程序進行逐條指令的調(diào)試。無符號數(shù):5+10=15CF=0有符號數(shù):(+5)+(+10)=+15OF=00000010100001010+00001111①無符號數(shù):8+251=3CF=1有符號數(shù):OF=0②0000100011111011+000000111(+8)+(-5)=+3無符號數(shù):8+124=132CF=0有符號數(shù):(+8)+(+124)=-124OF=1無符號數(shù):135+245=124有符號數(shù):OF=1CF=1(-121)+(-11)=+1240000100001111100+10000100③1000011111110101+011111001④CF的一般作用是判斷無符號數(shù)的溢出,計算機溢出對無符號數(shù)來說,用CF判斷即可。CF=1,表示溢出。難點:C

溫馨提示

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

評論

0/150

提交評論