




版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進行舉報或認(rèn)領(lǐng)
文檔簡介
第2章8086系統(tǒng)結(jié)構(gòu)2.18086CPU結(jié)構(gòu)
2.28086CPU的引腳及其功能2.38086存儲器組織2.48086系統(tǒng)配置2.18086CPU結(jié)構(gòu)Inter8086CPU是16位微處理器,它有16根數(shù)據(jù)線和20根地址線,直接尋址空間為,即1MB。8088CPU內(nèi)部結(jié)構(gòu)與8086基本相同但對外數(shù)據(jù)總線只有8條,稱為準(zhǔn)16位微處理器。2.1.18086CPU的內(nèi)部結(jié)構(gòu)
微型計算機工作時,總是先從存儲器中取指令,需要的話再取操作數(shù),然后執(zhí)行指令,送結(jié)果。通常8位機是串行執(zhí)行的,而16位機可并行操作。8086CPU由總線接口部件BIU和指令執(zhí)行部件EU組成,BIU和EU的操作是并行的??偩€接口部件BIU完成取指令,讀操作數(shù),送結(jié)果,所有與外部的操作由其完成。而指令執(zhí)行部件EU從BIU的指令隊列中取出指令,執(zhí)行指令,不必訪問存儲器或I/O端口。若需要訪問存儲器或I/O端口,也是由EU向BIU發(fā)出訪問所需要的地址,在BIU中形成物理地址,然后訪問存儲器或I/O端口,取得操作數(shù)送到EU,或送結(jié)果到指定的內(nèi)存單元或I/O端口。這種并行工作方式,大大提高了系統(tǒng)工作效率。圖2.18086CPU內(nèi)部結(jié)構(gòu)示意圖1.總線接口部件BIU總線接口部件BIU是8086CPU與外部(存儲器和I/O端口)的接口,它提供了16位雙向數(shù)據(jù)總線和20位地址總線,完成所有外部總線操作。BIU具有下列功能:地址形成、取指令、指令排隊,讀/寫操作數(shù)和總線控制。它由下列各部分組成:(1)16位段地址寄存器:CS-代碼段寄存器DS-數(shù)據(jù)段寄存器ES-附加段寄存器SS-堆棧段寄存器(2)16位指令指針寄存器IP:存放下一條要執(zhí)行指令的偏移地址。(3)20位物理地址加法器:將16位邏輯地址變換成存儲器讀/寫所需要的20位物理地址,實際上完成地址加法操作。(4)6字節(jié)指令隊列:預(yù)放6字節(jié)的指令代碼。(5)總線控制邏輯:發(fā)出總線控制信號。2.指令執(zhí)行部件EU指令執(zhí)行部件EU完成指令譯碼和執(zhí)行指令的工作。它由以下幾個部分組成:(1)算術(shù)邏輯運算單元ALU:完成8位或16位的二進制運算,16位暫存器可暫存參加運算的操作數(shù)。(2)標(biāo)志寄存器PSW:存放ALU運算結(jié)果特征。(3)寄存器組:4個通用16位寄存器AX、BX、CX、DX,其中AX又稱累加器。4個專用16位寄存器:源變址寄存器SI、目的變址寄存器DI、堆棧指針寄存器SP、基址指針寄存器BP。(4)EU控制器:取指令控制和時序控制部件。2.1.2寄存器結(jié)構(gòu)寄存器用來存放運算過程中所需要的操作數(shù)地址、操作數(shù)及中間結(jié)果。8086微處理器內(nèi)部包含有4組16位寄存器,它們分別是通用寄存器組,指針和變址寄存器,段寄存器,指令指針及標(biāo)志位寄存器。如圖2.2所示。2.8086CPU的內(nèi)部寄存器圖2.28086CPU內(nèi)部寄存器
數(shù)據(jù)寄存器
指針與變址寄存器AXAHALSP
堆棧指針寄存器BXBHBLBP
基址寄存器CXCHCLSI
源變址寄存器DXDHDLDI
目的變址寄存器
段寄存器
指令指針與標(biāo)志寄存器CS
代碼段寄存器IP
指令指針寄存器DS
數(shù)據(jù)段寄存器FLAGS
標(biāo)志位寄存器ES
附加段寄存器
SS
堆棧段寄存器
1.通用寄存器組8086/8088CPU在指令執(zhí)行部件EU中有4個16位通用寄存器,它們是AX、BX、CX和DX,用以存放16位數(shù)據(jù)或地址。也可分為8個8位寄存器來使用,低8位是AL、BL、CL和DL,高8位為AH、BH、CH和DH,只能存放8位數(shù)據(jù),不能存放地址。在8086中,某些通用寄存器用作專門用途。例如,串指令中必須用CX寄存器作為計數(shù)寄存器,存放串的長度,同樣,AX、BX、DX寄存器又可分別稱為累加器、基址寄存器及數(shù)據(jù)寄存器。2.指針和變址寄存器8086/8088CPU中,有一組4個16位寄存器,它們是基址指針寄存器BP,堆棧指針寄存器SP,源變址寄存器SI和目的變址寄存器DI。這組寄存器存放的內(nèi)容是某一段內(nèi)地址偏移量,用來形成操作數(shù)地址,主要在堆棧操作和變址運算中使用。BP和SP寄存器稱為指針寄存器,與SS聯(lián)用,為訪問現(xiàn)行堆棧段提供方便。通常BP寄存器在間接尋址中使用,操作數(shù)在堆棧段中,由SS段寄存器與BP組合形成操作數(shù)地址。即BP中存放現(xiàn)行堆棧段中一個數(shù)據(jù)區(qū)的“基址”的偏移量,所以稱BP寄存器為基址指針。SP寄存器在堆棧操作中使用,PUSH和POP指令是從SP寄存器得到現(xiàn)行堆棧段的段內(nèi)地址偏移量,所以稱SP寄存器為堆棧指針,SP始終指向棧頂。寄存器SI和DI稱為變址寄存器,通常與DS一起使用,為訪問現(xiàn)行數(shù)據(jù)段提供段內(nèi)地址偏移量。在串指令中,其中源操作數(shù)的偏移量存放在SI中,目的操作數(shù)的偏移量存放在DI中,SI與DI的作用不能互換,否則傳送地址相反。在串指令中,SI、DI均為隱含尋址,此時,SI和DS聯(lián)用,DI和ES聯(lián)用。3.段寄存器8086/8088CPU可直接尋址1MB的存儲器空間,直接尋址需要20位地址碼,而所有內(nèi)部寄存器都是16位的,只能直接尋址64KB,因此采用分段技術(shù)來解決。將1MB的存儲空間分成若干邏輯段,每段最長64KB,這些邏輯段在整個存儲空間中可浮動。8086/8088CPU內(nèi)部設(shè)置了4個16位段寄存器,它們分別是代碼段寄存器CS、數(shù)據(jù)段寄存器DS、堆棧段寄存器SS、附加段寄存器ES,由它們給出相應(yīng)邏輯段的首地址,稱為“段基址”。段基址與段內(nèi)偏移地址組合形成20位物理地址,段內(nèi)偏移地址可存放在寄存器中,也可存放在存儲器中。例2.1代碼段寄存器CS存放當(dāng)前代碼段基地址,IP指令指針寄存器存放了下一條要執(zhí)行指令的段內(nèi)偏移地址,其中CS=2000H,IP=003AH.通過組合,形成20位存儲單元的尋址地址為2003AH。代碼段內(nèi)存放可執(zhí)行的指令代碼,數(shù)據(jù)段和附加段內(nèi)存放操作的數(shù)據(jù),通常操作數(shù)在現(xiàn)行數(shù)據(jù)段中,而在串指令中,目的操作數(shù)指明必須在現(xiàn)行附加段中。堆棧段開辟為程序執(zhí)行中所要用的堆棧區(qū),采用先進后出的方式訪問它。各個段寄存器指明了一個規(guī)定的現(xiàn)行段,各段寄存器不可互換使用。程序較小時,代碼段、數(shù)據(jù)段、堆棧段可放在一個段內(nèi),即包含在64KB之內(nèi),而當(dāng)程序或數(shù)據(jù)量較大時,超過了64KB,可以定義多個代碼段或數(shù)據(jù)段、堆棧段、附加段?,F(xiàn)行段由段寄存器指明段地址,使用中可以修改段寄存器內(nèi)容,指向其它段。有時為了明確起見,可在指令前加上段超越的前綴字,以指定操作數(shù)所在段。4.指令指針寄存器
8086/8088CPU中設(shè)置了一個16位指令指針寄存器IP,用來存放將要執(zhí)行的下一條指令在現(xiàn)行代碼段中的偏移地址。程序運行中,它由BIU自動將其修改,使IP始終指向下一條將要執(zhí)行的指令的地址,因此它是用來控制指令序列的執(zhí)行流程的。8086程序不能直接訪問IP,但可以通過某些指令修改IP的內(nèi)容。例如,當(dāng)遇到中斷指令或調(diào)用子程序指令時,8086自動調(diào)整IP的內(nèi)容,將IP中下一條將要執(zhí)行的指令地址偏移量入棧保護,待中斷程序執(zhí)行完畢或子程序返回時,可將保護的內(nèi)容從堆棧中彈出到IP,使主程序繼續(xù)運行。在跳轉(zhuǎn)指令時,則將新的跳轉(zhuǎn)目標(biāo)地址送入IP,改變它的內(nèi)容,實現(xiàn)了程序的轉(zhuǎn)移。
5.標(biāo)志寄存器PSW
標(biāo)志寄存器是一個16位的寄存器,8086共使用了9個有效位,格式如圖2.3所示。其中的6位是狀態(tài)標(biāo)志位:CF、PF、AF、ZF、CF和OF。3位為控制標(biāo)志位:TF、IF和DF。狀態(tài)標(biāo)志位是當(dāng)一些指令執(zhí)行后,表征所產(chǎn)生數(shù)據(jù)的一些特征。而控制標(biāo)志位則可以由程序?qū)懭?,以達到控制處理機狀態(tài)或程序執(zhí)行方式的表征。圖2.3標(biāo)志寄存器格式D15D14D13D12D11D10D9D8D7D6D5D4D3D2D1D0
OFDFIFTFSFZF
AF
PF
CFD15D0OFDFIFTFSFZFAFPFCF進借位標(biāo)志奇偶標(biāo)志半進借位標(biāo)志零標(biāo)志符號標(biāo)志單步中斷中斷允許方向標(biāo)志溢出標(biāo)志1-有進、借位0-無進、借位1-低8位有偶數(shù)個10-低8位有奇數(shù)個11-低4位向高4位有進、借位0-低4位向高4位無進、借位1-結(jié)果為00-結(jié)果不為0(1)6個狀態(tài)標(biāo)志位的功能分別敘述如下:CF(CarryFlag)——進位標(biāo)志位。當(dāng)執(zhí)行一個加法(或減法)運算,最高位產(chǎn)生進位(或借位)時,CF為1;否則為0。PF(ParityFlag)——奇偶標(biāo)志位。該標(biāo)志位反映運算結(jié)果低8位中“1”的個數(shù)是偶數(shù)還是奇數(shù)。當(dāng)指令執(zhí)行結(jié)果的低8位中含有偶數(shù)個1時,PF=1;否則PF=0。AF(AuxiliarycarryFlag)——輔助進位標(biāo)志位。當(dāng)執(zhí)行一個加法(或減法)運算,結(jié)果的低4位向高4位有進位(或借位)時,AF=1;否則AF=0。一般用在BCD碼運算中,判斷是否需要十進制調(diào)整。ZF(ZeroFlag)——全零標(biāo)志位。若當(dāng)前的運算結(jié)果為零,ZF=1;否則ZF=0。SF(SignFlag)——符號標(biāo)志位。它和運算結(jié)果的最高位相同。OF(OverflowFlag)——溢出標(biāo)志位。當(dāng)運算過程中產(chǎn)生溢出時,OF=1;否則OF=0。(2)3個控制標(biāo)志位用來控制CPU的操作,由指令進行置位和復(fù)位。DF(DirectionFlag)——方向標(biāo)志位。它用以指定字符串處理時的方向,當(dāng)該位置“1”時,字符串以遞減順序處理,即地址以從高到低順序遞減。反之,則以遞增順序處理。IF(InterruptenableFlag)——中斷標(biāo)志位。它用來控制8086是否允許接收外部中斷請求。若IF=1,允許CPU響應(yīng)外部中斷,反之則不響應(yīng)外部中斷。注意:IF的狀態(tài)不影響非屏蔽中斷請求(NMI)和CPU內(nèi)部中斷請求。TF(TrapFlag)——單步標(biāo)志位。它是為調(diào)試程序而設(shè)定的控制位。當(dāng)該位置“1”時,8086CPU處于單步狀態(tài),此時CPU每執(zhí)行完一條指令就自動產(chǎn)生一次內(nèi)部中斷,使用戶能逐條跟蹤程序進行調(diào)試。當(dāng)該位復(fù)位后,CPU恢復(fù)正常工作。例2.2將5394H與-777FH兩數(shù)相加,并說明其標(biāo)志位狀態(tài):0101001110010100+1000100010000001—————————————1101110000010101運算結(jié)果為-23EBH,并置標(biāo)志位為CF=0,PF=0,AF=0,ZF=0,SF=1,OF=0。本節(jié)主要內(nèi)容講解視頻2.28086CPUD引腳及其功能8086/8088CPU根據(jù)它的基本性能,應(yīng)包括20條地址線,16條數(shù)據(jù)線,加上控制信號,電源和地線,芯片的引腳比較多。但由于制造工藝的限制,8086/8088CPU芯片采用40條引腳的雙列直插式封裝,因此部分引腳采用了分時復(fù)用的方式。另外8086/8088CPU可以工作在兩種工作模式(最小模式和最大模式),最小模式用于單機系統(tǒng)。系統(tǒng)中所需要的控制信號全部由8086直接提供。最大模式用于多處理機系統(tǒng),系統(tǒng)中所需要的控制信號由總線控制器8288提供。這樣,24腳~31腳的8條引腳在兩種工作模式中具有不同的功能。2.2.18086/8088CPU在最小模式中引腳定義8086CPU采用雙列直插式的封裝形式,具有40條引腳,見圖2.4。它采用分時復(fù)用的地址/數(shù)據(jù)總線,所以有一部分引腳具有雙重功能,即在不同時鐘周期內(nèi),引腳的作用不同。圖2.48086的引腳信號(括號中為最大模式下的名稱)1、地址/數(shù)據(jù)總線AD15-AD0:地址/數(shù)據(jù)復(fù)用引腳,雙向,三態(tài)。16位地址總線A15-A0,輸出訪問存儲器或I/O的地址信息。16位數(shù)據(jù)總線D15-D0,與存儲器和I/O設(shè)備交換數(shù)據(jù)信息。地址/數(shù)據(jù)總線復(fù)用2、地址/狀態(tài)總線A19/S6-A16/S3:地址/狀態(tài)總線復(fù)用引腳,輸出,三態(tài)。輸出訪問存儲器的20位地址的高4位地址A19-A16或輸出CPU的工作狀態(tài)。S6:指示8086/8088當(dāng)前是否與總線相連,S6=0,表示8086/8088當(dāng)前與總線相連。S5:表明中斷允許標(biāo)志當(dāng)前的設(shè)置。S5=0,表示CPU中斷是關(guān)閉的,禁止一切可屏蔽中斷源的中斷請求;S5=1,表示CPU中斷是開放的,允許一切可屏蔽中斷源的中斷申請。S4、S3:指出當(dāng)前使用段寄存器的情況。S4S3段寄存器00當(dāng)前正在使用ES01當(dāng)前正在使用SS10當(dāng)前正在使用CS或不需使用段寄存器11當(dāng)前正在使用DS3、控制總線(1)、/BHE/S7:高8位數(shù)據(jù)總線允許/狀態(tài)復(fù)用引腳。在總線周期的T1狀態(tài),此引腳輸出/BHE信號,表示高8位數(shù)據(jù)線D15-D8上的數(shù)據(jù)有效。在T2、T3、TW和T4狀態(tài)時,此引腳輸出S7狀態(tài)信號。/BHE、A0組合:/BHEA0總線使用情況
00從偶地址單元開始,在16位數(shù)據(jù)總線上進行字傳送01從奇地址單元開始,在高8位數(shù)據(jù)總線上進行字節(jié)傳送10從偶地址單元開始,在低8位數(shù)據(jù)總線上進行字節(jié)傳送11無效S7:8086中無定義。(2)/RD:讀信號,三態(tài)輸出,低電平有效。/RD=0,表示當(dāng)前CPU正在對存儲器或I/O端口進行讀操作。(3)/WR:寫信號,三態(tài)輸出,低電平有效。/WR=0,表示當(dāng)前CPU正在對存儲器或I/O端口進行讀操作。(4)M//IO:存儲器或IO端口訪問信號,三態(tài)輸出。M//IO=1,表示CPU正在訪問存儲器;M//IO=0,表示CPU正在訪問IO端口。(5)READY:準(zhǔn)備就緒信號,輸入,高電平有效。READY=1,表示CPU訪問的存儲器或IO端口已準(zhǔn)備好傳送數(shù)據(jù)。若CPU在總線周期T3狀態(tài)檢測到READY=0,表示未準(zhǔn)備好,CPU自動插入一個或多個等待狀態(tài)TW,直到READY=1為止。(6)INTR:可屏蔽中斷請求信號,輸入,高電平有效。當(dāng)INTR=1,表示外設(shè)向CPU發(fā)出中斷請求,CPU在當(dāng)前指令周期的最后一個T狀態(tài)去采樣該信號,若此時IF=1,CPU響應(yīng)中斷,執(zhí)行中斷服務(wù)程序。(7)/INTA:中斷響應(yīng)信號,輸出,低電平有效。表示CPU響應(yīng)了外設(shè)發(fā)來的中斷申請信號INTR。(8)NMI:不可屏蔽中斷請求信號,輸入,上升沿觸發(fā)。該請求信號不受IF狀態(tài)的影響,也不能用軟件屏蔽,一旦該信號有效,則執(zhí)行完當(dāng)前指令后立即響應(yīng)中斷。(9)/TEST:測試信號,輸入,低電平有效。當(dāng)CPU執(zhí)行WAIT指令時,每隔5個時鐘周期對/TEST進行一次測試,若/TEST=1,繼續(xù)等待,直到/TEST=0。(10)RESET:復(fù)位信號,輸入,高電平有效。RESET信號至少要保持4個時鐘周期。復(fù)位時:標(biāo)志寄存器、IP、DS、SS、ES為0,CS=FFFFH,復(fù)位后CPU從FFFF0H處開始執(zhí)行。(11)ALE:地址鎖存允許信號,輸出,高電平有效。用來鎖存地址信號A15-A0,分時使用AD15-AD0地址/數(shù)據(jù)總線。(12)DT//R:數(shù)據(jù)發(fā)送/接收控制信號,三態(tài)輸出。此信號控制數(shù)據(jù)總線上的收發(fā)器8286的數(shù)據(jù)傳送方向,DT//R=1,發(fā)送數(shù)據(jù)-寫操作;DT//R=0,接收數(shù)據(jù)-讀操作。(13)/DEN:數(shù)據(jù)允許信號,三態(tài)輸出,低電平有效。作為數(shù)據(jù)總線上收發(fā)器8286的選通信號。(14)HOLD:總線請求信號,輸入,高電平有效。當(dāng)系統(tǒng)中CPU之外的另一個控制器要求使用總線時,通過它向CPU發(fā)一高電平的請求信號。(15)HLDA:總線請求響應(yīng)信號,輸出,高電平有效。當(dāng)HLDA有效時,表示CPU對其它控制器的總線請求作出響應(yīng),與此同時,所有與三總線相接的CPU的引腳呈現(xiàn)高阻抗?fàn)顟B(tài),從而讓出總線。(16)MN//MX:工作模式選擇信號,輸入。
MN//MX=1,表示CPU工作在最小模式系統(tǒng);MN//MX=0,表示CPU工作在最大模式系統(tǒng)。(17)CLK:主時鐘信號,輸入。8086/8088的時鐘頻率為5MHZ。4、電源線和地線8086/8088采用單+5V電源,1、20引腳為地線。5、最大模式下的有關(guān)引腳(1)QS1、QS0:指令隊列狀態(tài)信號,輸出。
QS1QS0含義00無操作01將指令首字節(jié)送入指令隊列10隊列為空11將指令其余字節(jié)送指令隊列(2)/S2、/S1、/S0:總線周期狀態(tài)信號,三態(tài)輸出。
/S2、/S1、/S0狀態(tài)信號的編碼/S2/S1/S0操作過程產(chǎn)生信號000發(fā)中斷響應(yīng)信號/INTA001讀I/O端口IORC010寫I/O端口IOWC011暫停無100取指令/MRDC101讀存儲器/MRDC110寫存儲器/AMWC111無作用無(3)/RQ//GT0、/RQ//GT1:總線請求信號(輸入)/總線請求允許信號(輸出),雙向,低電平有效。輸入時表示其他主控者向CPU請求使用總線,輸出時表示CPU對總線請求的響應(yīng)信號,兩個引腳可以同時與兩個主控者相連。其中/RQ//GT0比/RQ//GT1有較高的優(yōu)先權(quán)。(4)/LOCK:總線封鎖信號,三態(tài)輸出,低電平有效。/LOCK=0,CPU不允許其它控制器占用總線。本節(jié)主要內(nèi)容講解視頻2.38086存儲器組織2.3.1存儲器地址的分段1.存儲器地址的分段在存儲器中是以字節(jié)為單位存儲信息的,每個存儲單元有唯一的地址來確定。8086/8088系統(tǒng)有20根地址線可尋址1MB字節(jié)的存儲空間,即對存儲器尋址要20位物理地址,而8086為16位機,CPU內(nèi)部寄存器只有16位,可尋址64KB。因此8086系統(tǒng)把整個存儲空間分成許多邏輯,每段容量不超過64KB。
8086系統(tǒng)對存儲器的分段采用靈活的方法,允許各個邏輯段在整個存儲空間中浮動,這樣在程序設(shè)計時可使程序保持相對的完整性。段和段之間可以是連續(xù)的(整個存儲空間分成16個邏輯段),也可以是分開的或重疊的。如圖2-7所示:任何一個存儲單元的實際地址,都是由段地址及段內(nèi)偏移地址兩部分組成,從圖2-7可以看出,任何一個存儲單元,可以在一個段中定義,也可定義在兩個重疊的邏輯段中,關(guān)鍵看段的首地址如何指定。IBMPC機對段的首地址有限制。規(guī)定必須從每小段的首地址開始,每16字節(jié)為一小段,所以段起始地址必須能被16整除才行。2.物理地址形成8086系統(tǒng)將段地址放在段寄存器中,稱為“段基址”。有4個段寄存器,分別為代碼段寄存器CS,數(shù)據(jù)段寄存器DS,附加段寄存器ES和堆棧段寄存器SS。段內(nèi)“偏移地址”指出了從段地址開始的相對偏移位置。它可以放在指令指針寄存器IP中,或16位通用寄存器中。
邏輯地址:存儲器的任一個邏輯地址由段基址和偏移地址組成,都是無符號的16位二進制數(shù),程序設(shè)計時采用邏輯地址。物理地址:存儲器的絕對地址,從00000~FFFFFH,是CPU訪問存儲器的實際尋址地址,它由邏輯地址變換而來。物理地址計算如下所示:物理地址=段基址×16+偏移地址因為段基址指每段的起始地址,它必須是每小段的首地址,其低4位一定為0,所以在實際工作時,是從段寄存器中取出段基址,將其左移4位,再與16位偏移地址相加,就得到了物理地址,此地址在CPU的總線接口部件BIU的地址加法器中形成。
圖2.3物理地址形成過程3.邏輯地址來源邏輯地址來源如下表所示:
CS0000IP代碼段DS或ES0000SI、DI或BXSS0000SP或BP數(shù)據(jù)段堆棧段存儲器段寄存器和偏移地址寄存器組合關(guān)系2.3.28086存儲器的分體結(jié)構(gòu)8086系統(tǒng)中,1MB的存儲空間分成兩個存儲體:偶地址存儲體和奇地址存儲體,各為512KB,示意圖如圖2-10所示:圖2-118086系統(tǒng)的存儲器結(jié)構(gòu)圖2-11所示為8086系統(tǒng)的存儲器結(jié)構(gòu)。1MB存儲器分為兩個庫,每個庫的容量都是512KB。其中和數(shù)據(jù)總線D15~D8相連的庫全部由奇地址單元組成,稱為高位字節(jié)庫或奇地址庫,利用/BHE信號低電平作為此庫的選擇信號;另一個庫和數(shù)據(jù)總線D7~D0相連,由偶地址單元組成,稱為低位字節(jié)庫或偶地址庫,利用地址線A0=0(低電平)作為此庫的選擇信號。所以只有A19~A1共19個地址線用來作為兩個庫內(nèi)的存儲單元的尋址信號。表2-1給出/BHE與A0相配合可能進行的操作。A0操作數(shù)據(jù)引腳00從偶地址開始讀/寫一個字(規(guī)則字)AD15~AD010從偶地址開始讀/寫一個字節(jié)AD7~AD001從奇地址開始讀/寫一個字節(jié)AD15~AD80110從奇地址開始讀寫一個字(非規(guī)則字),第一總線周期高8位數(shù)據(jù)有效,第二總線周期低8位數(shù)據(jù)有效AD15~AD8AD7~AD0表2-1和A0的代碼組合對應(yīng)的存取操作當(dāng)在偶數(shù)地址中存取一個數(shù)據(jù)字節(jié)時,CPU從低位庫中經(jīng)數(shù)據(jù)線AD7~AD0存取數(shù)據(jù)。由于被尋址的是偶數(shù)地址,所以地址位A0=0,由于A0是低電平所以才能在低位庫中實現(xiàn)數(shù)據(jù)的存取。而指令中給出的是在偶地址中存取一個字節(jié),/BHE信號應(yīng)為高電平,故不能從高位庫中讀出數(shù)據(jù)。相反,當(dāng)在奇數(shù)地址中存取一個字節(jié)數(shù)據(jù)時,應(yīng)經(jīng)數(shù)據(jù)線的高8位AD15~AD8傳送。此時,指令應(yīng)指出是從高位地址(奇數(shù)地址)尋址,/BHE信號為低電平有效狀態(tài),故高位庫能被選中,即能對高位庫中的存儲單元進行存取操作。由于是高位地址尋址,故A0=1低位庫存儲單元不會被選中。如表2-1所示,8086CPU也可以一次在兩個庫中同時各存取一個字節(jié),完成一個字的存取操作。字?jǐn)?shù)據(jù)是將連續(xù)存放的兩個字節(jié)數(shù)據(jù)構(gòu)成一個16位的字?jǐn)?shù)據(jù)。規(guī)定字的高8位字節(jié)存放在高地址單元,字的低8位字節(jié)存放在低地址單元。同時規(guī)定將低位字節(jié)的地址作為這個字的地址。通常,一個字?jǐn)?shù)據(jù)總是位于偶地址,即偶地址對應(yīng)低位字節(jié),奇地址對應(yīng)高位字節(jié),符合這種規(guī)則存放的字?jǐn)?shù)據(jù)稱為“規(guī)則字”。雙字?jǐn)?shù)據(jù)要占用4個字節(jié),用以存放連續(xù)的兩個字。在存放低位字或高位字時,高位字節(jié)位于高地址,低位字節(jié)位于低地址,以最低位字節(jié)地址作為它的地址。規(guī)則字的存取操作可以在一個總線周期中完成。由于地址線A19~A1是同時連接在兩個庫上的,只要BHE和A0信號同時有效,就可以一次實現(xiàn)在兩個庫中對一個字(高低兩字節(jié))完成存取操作。對字的存取操作所需的BHE及A0信號是由字操作指令給出的。對非規(guī)則字的存取操作就需要兩個總線周期才能完成:在第一個總線周期中,CPU是在高位庫中存取數(shù)據(jù)(低位字節(jié)),此時A0=1,BHE=0。然后再將存儲器地址加1,使A0=0,選中低位庫;在第二個總線周期中,是在低位庫中存取數(shù)據(jù)(高位字節(jié)),此時A0=0,BHE=1。本節(jié)主要內(nèi)容講解視頻2.3.3堆棧的概念
所謂堆棧是在存儲器中開辟一個區(qū)域,用來存放需要暫時保存的數(shù)據(jù)。堆棧段是由段定義語句在存儲器中定義的一個段,它可以在存儲器lMB空間內(nèi)任意浮動,堆棧段容量小于等于64KB,段基址由堆棧寄存器SS指定,棧頂由堆棧指針SP指定,根據(jù)堆棧構(gòu)成方式不同,堆棧指針SP指向的可以是當(dāng)前棧頂單元,也可以是棧頂上的一個“空”單元,一般采用SP指向當(dāng)前棧頂單元。堆棧的地址增長方式一般是向上增長,棧底設(shè)在存儲器的高地址區(qū),堆棧地址由高向低增長。例2.3:假如當(dāng)前SS=C000H,堆棧段<64KB,SP=1000H,指出當(dāng)前棧頂在存儲器中的位置。當(dāng)前棧頂在存儲器中的地址為C1000H,如圖所示:堆棧的工作方式是“先進后出”,用入棧指令PUSH和出棧指令POP可將數(shù)據(jù)壓入堆棧或從堆棧中彈出數(shù)據(jù),棧頂指針SP的變化由CPU自動管理。堆棧以字為單位進行操作,堆棧中的數(shù)據(jù)項以低字節(jié)在偶地址,高字節(jié)在奇地址的次序存放。當(dāng)執(zhí)行PUSH指令時,CPU自動修改指針SP-2→SP。使SP指向新棧頂,然后將低位數(shù)據(jù)壓人(SP)單元,高位數(shù)據(jù)壓入(SP+1)單元。當(dāng)執(zhí)行POP指令時,CPU先將當(dāng)前棧頂SP(低位數(shù)據(jù))和SP+1(高位數(shù)據(jù))中的內(nèi)容彈出,然后再自動修改指針,使SP+2→SP,SP指向新棧頂。
例2.4上圖中若AX=3322H,BX=1100H,CX=6655H,執(zhí)行指令PUSHAXPUSHBXPOPCX此時堆棧中內(nèi)容發(fā)生什么變化?AX,BX,CX中的內(nèi)容是什么?如圖C所示。
堆棧主要用于中斷及子程序調(diào)用,也可用于數(shù)據(jù)暫時保存。在進入中斷服務(wù)子程序和子程序調(diào)用前,原來CPU中現(xiàn)行信息(指令指針I(yè)P,及寄存器中有關(guān)內(nèi)容)都必須保存,在中斷服務(wù)子程序和子程序調(diào)用結(jié)束返回主程序時,又必須恢復(fù)原來保存的信息,這些均由堆棧操作來完成。其中指令指針的入棧和出棧由CPU自動管理,而一些寄存器中內(nèi)容的保存及返回,需要用戶自己利用指令PUSH、POP來完成。
由于堆棧操作的先進后出的特點,一定要注意兩點:1)先進入的內(nèi)容要后彈出,保證返回寄存器內(nèi)容不發(fā)生錯誤。例2.5PUSHAXPUSHBXPUSHCXPOPCXPOPAXPOPBX會使AX和BX內(nèi)容互相交換。2)PUSH和POP的指令要成對,若不匹配的話,會造成返回主程序的地址出錯。例2.6PUSHAXPUSHBXPUSHCX...POPCXPOPBXRET會使CPU返回主程序時,返回地址取出的是原來AX中的內(nèi)容,使整個程序執(zhí)行出錯。2.48086系統(tǒng)配置8086/8088系統(tǒng)可以有最小模式和最大模式兩種系統(tǒng)配置方式,兩種方式的選擇是由硬件設(shè)定的。當(dāng)CPU的引腳MN//MX端接高電平+5V時,構(gòu)成最小模式,當(dāng)MN//MX接低電平時,構(gòu)成最大模式。
最小模式:單機系統(tǒng),系統(tǒng)中所需要的控制信號由CPU提供,實現(xiàn)和存儲器及I/0接口電路的連接。
最大模式:可以構(gòu)成多處理器/協(xié)處理器系統(tǒng),即一個系統(tǒng)中存在兩個以上微處理器,每個處理器執(zhí)行自己的程序。
常用的處理器有數(shù)值運算協(xié)處理器8087,輸入/輸出處理器8089。系統(tǒng)中所需要的控制信號由總線控制器8288提供,8086CPU提供信號控制8288,以實現(xiàn)全局資源分配及總線控制權(quán)傳遞。2.4.1最小模式系統(tǒng)
在最小模式系統(tǒng)中,除了8086CPU,存儲器及I/O接口芯片外,還要加入:1片8284A,作為時鐘發(fā)生器3片8282/8283或74LS373,作為地址鎖存器2片8286/8287或74LS245,作為雙向數(shù)據(jù)總線收發(fā)器配置成一個系統(tǒng)。圖2.158086CPU最小模式下的典型配置1.地址鎖存器8282/8283CPU與存儲器(或I/O端口)進行數(shù)據(jù)交換時,CPU首先要送出地址信號,然后再發(fā)出控制信號及傳送數(shù)據(jù)。由于8086引腳限制,地址和數(shù)據(jù)分時復(fù)用一組總線,所以要加入地址鎖存器,先鎖存地址,使在讀/寫總線周期內(nèi)地址穩(wěn)定。8282/8283是三態(tài)緩沖的8位數(shù)據(jù)鎖存器,8282的輸入和輸出信號是同相的,8283的輸入和輸出信號反相。8282/8283在最小模式系統(tǒng)中作地址鎖存器用,20位物理地址需要用3片。OODQCLKOSTB。。。。。ODI0DO0OE。。。。。。。8282引腳及內(nèi)部結(jié)構(gòu)圖。。。。DI0~DI7輸入端DO0~DO7輸出端/OE允許控制(低電平有效)STB鎖存信號高電平允許(通過)低電平禁止(鎖存)DI7DO72.雙向數(shù)據(jù)總線收發(fā)器8286/8287
8086CPU驅(qū)動數(shù)據(jù)的負(fù)載能力有限,當(dāng)掛在數(shù)據(jù)總線上的部件增加時,可以利用雙向數(shù)據(jù)總線收發(fā)器8286/8287來增加驅(qū)動能力。8286/8287是三態(tài)8位雙向數(shù)據(jù)收發(fā)器,8286數(shù)據(jù)輸入與輸出同相,8287數(shù)據(jù)輸入與輸出反相。DEN=0OE=0當(dāng)DT/R=0時,當(dāng)DT/R=1時,ABAOBOOO。。。。。。。OOETA1A7。。。B1B7。。。。接DEN接DT/R8286BA8286引腳及內(nèi)部結(jié)構(gòu)圖1289111218193.時鐘發(fā)生器8284
8086CPU的內(nèi)部和外部的時間基準(zhǔn)信號由時鐘輸入信號CLK提供,CLK信號是由外部時鐘發(fā)生器8284產(chǎn)生,并由驅(qū)動門電路進行功率放大。8284時鐘發(fā)生器與8086CPU的連接圖如下頁:RESETREADYCLKOSCPCLKRESRDY10+5V等待電路14.31818MHZ8284RESETREADYCLK14.318MHZ2.385MHZ8086/80882.4.2最大模式系統(tǒng)
CPU的引腳MN//MX接地時,8086為最大模式系統(tǒng),在最大模式系統(tǒng)中需要增加總線控制器8288和總線裁決器8289,以完成8086CPU為中心的多處理器系統(tǒng)的協(xié)調(diào)工作。此時CPU輸出的狀態(tài)信號/S0~/S2同時送給8288和8289,由8288輸出原CPU所有的控制信號:存儲器讀/寫控制,I/O端口讀/寫控制,中斷響應(yīng)信號等。由8289來裁決總線使用權(quán)賦給哪個處理器,以實現(xiàn)多主控者對總線資源的共享。總線控制器8288
總線控制器8288是20個引腳的雙極型器件。8086CPU的總線狀態(tài)信號/S0、/S1、/S2輸入總線控
溫馨提示
- 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)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 中醫(yī)職業(yè)藥師試題及答案
- 天津市濱海七所重點學(xué)校2025屆數(shù)學(xué)高二下期末檢測模擬試題含解析
- 云南省施甸縣第三中學(xué)2025屆數(shù)學(xué)高二下期末質(zhì)量檢測模擬試題含解析
- 云南省屏邊縣民族中學(xué)2025屆物理高二下期末質(zhì)量跟蹤監(jiān)視模擬試題含解析
- 鹽城市高二年級下學(xué)期期終考試地理試題
- 餐飲檔口外賣配送與配送服務(wù)合同
- 教育機構(gòu)場地出租印花稅繳納標(biāo)準(zhǔn)合同
- 餐飲行業(yè)服務(wù)員競業(yè)禁止合同范本
- 教育培訓(xùn)機構(gòu)場地租賃分成與課程開發(fā)合同
- 拆除工程拆除現(xiàn)場安全管理合同模板
- 【高考真題(含答案)】安徽省新高考2024年化學(xué)試卷(含答案)
- 頂層鋼結(jié)構(gòu)合同
- 中國硬筆書法等級考試試卷(三級)
- 2025年江蘇省啟東市文化廣電和旅游局招聘編外1人歷年高頻重點提升(共500題)附帶答案詳解
- 《物流項目運營管理》課件
- 《普通生物學(xué)》課程期末考試復(fù)習(xí)題庫及答案
- dlt-5161-2018電氣裝置安裝工程質(zhì)量檢驗及評定規(guī)程
- 2025年沈陽水務(wù)集團招聘筆試參考題庫含答案解析
- 用戶生命周期管理策略-洞察分析
- 第三屆中國長三角地區(qū)融資擔(dān)保職業(yè)技能競賽選拔賽試題庫500題(含答案)
- 2025屆安徽省A10聯(lián)盟高三第二次調(diào)研數(shù)學(xué)試卷含解析
評論
0/150
提交評論