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

下載本文檔

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

文檔簡(jiǎn)介

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

IP

ES

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

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

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

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

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

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

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

CF

SF

ZF

PF

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

IF

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

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

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

溫馨提示

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

最新文檔

評(píng)論

0/150

提交評(píng)論