




版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡介
第2章
微型計(jì)算機(jī)
原理及結(jié)構(gòu)特點(diǎn)
8086MPU的結(jié)構(gòu)特點(diǎn)2.2微型計(jì)算機(jī)的組成原理2.12.1微型計(jì)算機(jī)的組成原理
一臺微型計(jì)算機(jī)由四大塊組成,即主機(jī),外部設(shè)備,接口和總線。其中的主機(jī)由CPU、主存貯器組成,下面分別介紹。2.1.1主存貯器主機(jī)內(nèi)部的存貯器叫主存貯器,也叫內(nèi)存,內(nèi)存要求工作速度快,可與CPU匹配,所以內(nèi)存均由半導(dǎo)體存貯器芯片組成,一片存貯芯片由地址譯碼器,存貯體和讀寫控制電路組成,如圖2-2所示地址譯碼器存貯體讀寫控制地址總線AB控制總線
CB數(shù)據(jù)總線DB圖2-2存儲芯片結(jié)構(gòu)示意圖1.存貯體
把若干個(gè)存貯元器件按矩陣排列形式形成若干個(gè)存貯單元,用來存放二進(jìn)制代碼,一個(gè)存貯元器件可放一位二進(jìn)制代碼,這些二進(jìn)制代碼可以表示為一條指令(指令字),也可以是一個(gè)操作數(shù)或狀態(tài)字等等。
位單元:一個(gè)存貯單元只能存放一位二進(jìn)制代碼,0或1。字節(jié)單元:八位二進(jìn)制數(shù)叫做一個(gè)字節(jié),那么一個(gè)字節(jié)單元可以存放8個(gè)二進(jìn)制代碼。1KB=1024B,1MB=1024KB,1GB=1024MB字單元:習(xí)慣上把兩個(gè)字節(jié)為一個(gè)字,所以字單元可存放16位二進(jìn)制代碼。一個(gè)字=2個(gè)字節(jié)=16位
為了便于對存貯單元進(jìn)行管理及操作,把每一個(gè)存貯單元都編上號,叫作地址,一個(gè)具有256個(gè)存貯單元的地址從00~FFH。 存貯器的訪問:有兩種操作,讀操作、寫操作。從存貯器中取出操作數(shù)叫“讀”操作。往存貯器中存放數(shù)據(jù)叫“寫”操作。00H01H02H…存儲體…FEH
B5FFH2.地址譯碼器 地址譯碼器接收由CPU送來的地址經(jīng)譯碼后,便指向?qū)?yīng)該地址的存貯單元,所以訪問存貯器時(shí),首先要由地址譯碼器尋找存貯單元地址。 如兩位地址A1,A0,對應(yīng)4個(gè)存貯單元的地址,如表2-1同理,三位地址可訪問8個(gè)存貯單元,n位地址數(shù),可訪問2n個(gè)存貯單元A1A0對應(yīng)存儲單元000號011號102號113號3號單元2號單元1號單元0號單元A0A12:4譯碼器表2-1地址對應(yīng)存儲單元表圖2-42位地址的譯碼器
3.讀/寫控制電路
接收CPU送來的讀(用RD表示)或?qū)懀ㄓ肳R表示)命令,可對已經(jīng)被選中的存貯單元進(jìn)行讀操作或?qū)懖僮鳌?4.存貯器的外圍電路
存貯器的外圍電路協(xié)助存貯器工作,包括存貯器地址寄存器(MAR)和存貯器數(shù)據(jù)寄存器(MDR)
5.存貯器硬件系統(tǒng)及其工作原理1)存貯器硬件系統(tǒng)
存貯器系統(tǒng)如圖2-5所示,它由存貯地址寄存器MAR、地址譯碼器、存貯體、讀/寫控制及存貯數(shù)據(jù)寄存器MDR組成,存貯地址寄存器MAR與地址總線AB相連,存貯數(shù)據(jù)寄存器MDR與數(shù)據(jù)總線DB相連.2)存貯器的工作過程 (1)存數(shù)操作例如,把數(shù)據(jù)4AH送入05H單元,需要下面五步完成CPU把地址05H通過地址總線AB送入MARMAR的內(nèi)容經(jīng)地址譯碼器譯碼后選中05H單元。CPU再把寫入的數(shù)據(jù)(4AH)通過數(shù)據(jù)總線DB送入MDR中CPU發(fā)來寫命令(WR=1)在寫命令作用下,把MDR中的4AH寫入到選中的05H單元(2)取數(shù)操作
取數(shù)操作正好與存數(shù)操作相反,其過程如下:例如,已知地址為FEH單元中存有一個(gè)數(shù)據(jù)B9H。把該數(shù)據(jù)B9H取出,送入存貯數(shù)據(jù)寄存器MDR的過程為:CPU通過地址總線AB先把地址FEH送入存貯地址寄存器MAR中MAR的內(nèi)容經(jīng)地址譯碼器譯碼后選中FEH單元CPU發(fā)讀命令(RD=1)在讀命令作用下,從被選中的FEH單元內(nèi)把數(shù)據(jù)B9H取出送入存貯數(shù)據(jù)寄存器MDR中 2.1.2中央處理器CPU
CPU也叫作微處理器MPU,CPU是把運(yùn)算器、控制器合稱為中央處理器。CPU有如下功能:可以完成算術(shù)運(yùn)算和邏輯運(yùn)算,也可對數(shù)據(jù)進(jìn)行變換加工等工作??傻酱尜A器中讀取指令,并對其譯碼分析后具體執(zhí)行指令的任務(wù)??上蛉珯C(jī)各部件提供所需要的控制信號和定時(shí)時(shí)鐘。可與存貯器、外部設(shè)備進(jìn)行數(shù)據(jù)傳送??煽刂瞥绦虻膱?zhí)行流向CPU內(nèi)部結(jié)構(gòu)一般是由運(yùn)算器和控制器兩大部分組成。1.運(yùn)算器可完成算術(shù)運(yùn)算,也能完成邏輯運(yùn)算還可實(shí)現(xiàn)數(shù)據(jù)的移位,對兩個(gè)數(shù)據(jù)比較(CMP)、測試(TEST)。
總之,是對計(jì)算機(jī)中的信息或數(shù)據(jù)進(jìn)行處理和運(yùn)算的部件。
以算術(shù)運(yùn)算為例,運(yùn)算器的組成如圖2-6所示。ACCALUMDRPSWDB圖2-6運(yùn)算器結(jié)構(gòu)圖
1)ALU 是算術(shù)邏輯運(yùn)算單元,用來處理各種數(shù)據(jù)信息,具體完成加、減、乘、除算術(shù)運(yùn)算和與、或、非、異或邏輯運(yùn)算的地方 2)累加器ACC和MDR寄存器:兩個(gè)存放操作數(shù)的寄存器
3)程序狀態(tài)字寄存器PSW 程序狀態(tài)字用來反映操作結(jié)果特征的地方,例如:
101101+100110=010011 101101 +) 100110 —————— 010011
兩數(shù)相加的結(jié)果為010011,其特征是最高位產(chǎn)生進(jìn)位,為什么不把結(jié)果寫成1010011呢?
因?yàn)榇娣挪僮鲾?shù)的寄存器是6位長,加出的結(jié)果仍然為6位數(shù),多出的1位(進(jìn)位)放在程序狀態(tài)字寄存器PSW中某一位上,表示這次操作結(jié)果產(chǎn)生進(jìn)位的特征。
設(shè)PSW也為8位,那么最大可有8種特征,不一定所有機(jī)器都有8種,但大部分有,如下所示:CY:進(jìn)位/借位標(biāo)志AC:半進(jìn)位/半借位標(biāo)志Z:零標(biāo)志OV:溢出標(biāo)志P:奇偶標(biāo)志 這些結(jié)果特征主要用途是向CPU提供執(zhí)行程序流程控制的依據(jù)。在編程設(shè)計(jì)中具有重要作用。先補(bǔ)第1章緒論P(yáng)PT的65頁內(nèi)容(十進(jìn)制整數(shù)轉(zhuǎn)為二進(jìn)制數(shù))2.控制器:按時(shí)間的先后順序向其它各部件發(fā)出控制信號,保證各部件協(xié)調(diào)一致的工作,使各種操作一步一步的完成,要保證控制器的工作,控制器結(jié)構(gòu)由以下電路組成,如圖2-7所示程序計(jì)數(shù)器PC微操作控制線路指令譯碼器ID指令寄存器IR時(shí)序發(fā)生器存貯器內(nèi)部總線+1圖2-7控制器結(jié)構(gòu)原理圖
1)指令寄存器IR
指令是指揮機(jī)器完成各種操作的命令,解題程序就是用一條條指令編寫出來的,在CPU解題之前,編寫好的解題程序放在存貯器內(nèi),CPU解題時(shí),控制器先到存貯器中取出一條指令,這條被取出的指令送入到控制器中的指令寄存器IR,在這里等待執(zhí)行。因?yàn)閳?zhí)行一條指令需要一定的時(shí)間,在這段時(shí)間內(nèi),指令不能消失,所以暫時(shí)先放在IR中。
指令格式如下圖所示即:一條指令由操作碼、操作數(shù)兩個(gè)字段組成。(1)操作碼(OPCode)字段它是告訴機(jī)器本條指令將完成什么操作,是加法操作還是減法操作,是轉(zhuǎn)移操作還是停機(jī)操作,所以一條指令必須有OPCode字段(1字節(jié)=8位)。(2)操作數(shù)/地址字段(OPD/ADDR)該字段指明參加本次操作的操作數(shù)是多少或者操作數(shù)來自什么地方,即操作數(shù)的地址,這部分是可選項(xiàng),有的指令沒有這項(xiàng)。
操作碼操作數(shù)/地址 2)指令譯碼器ID
一條指令可完成一種操作,如何讓機(jī)器知道就必須通過指令譯碼器,對OPCODE字段進(jìn)行譯碼分析,才知道本條指令完成的操作,例如ADD加法,操作碼OPCODE經(jīng)指令譯碼器后方知下面作加法,隨即把存放兩個(gè)加數(shù)的寄存器相應(yīng)門打開,讓操作數(shù)送往ALU進(jìn)行加法運(yùn)算,并把結(jié)果送入ACC。
指令譯碼器ID就是分析解釋指令的地方。 3)微操作控制線路經(jīng)過對指令分析后,根據(jù)分析結(jié)果發(fā)出相應(yīng)的控制命令,完成指令的執(zhí)行,微操作控制線路就是完成此任務(wù)的。
4)時(shí)序發(fā)生器
時(shí)序是按時(shí)間順序發(fā)出的各種控制信號,時(shí)序是由時(shí)序發(fā)生器產(chǎn)生的,包括:(1)指令周期:完成一條指令執(zhí)行的時(shí)間叫作指令周期,包括取指令和執(zhí)行指令兩個(gè)時(shí)間之和。不同指令所用的指令周期長度也不同(2)機(jī)器周期 完成一個(gè)基本操作所需要的時(shí)間叫作機(jī)器周期,例如訪問(讀或?qū)懀┐尜A器,從送被訪問存貯單元地址開始到讀出數(shù)據(jù)或?qū)懭霐?shù)據(jù)為止,這段時(shí)間叫作機(jī)器周期,取出指令叫取指周期,取操作數(shù)叫存貯器讀周期,寫入數(shù)據(jù)叫存貯器寫周期。一個(gè)指令周期包含一到多個(gè)機(jī)器周期。
(3)時(shí)鐘周期T1T2T3T4
時(shí)鐘周期是時(shí)鐘頻率的倒數(shù),時(shí)鐘就是時(shí)鐘發(fā)生器產(chǎn)生的一連串的脈沖信號,不能有停止的時(shí)候,好比人的心跳一樣,在時(shí)鐘的支持下,才有機(jī)器周期、指令周期的產(chǎn)生,時(shí)鐘周期是計(jì)算機(jī)對時(shí)間計(jì)量的基本單位,任何時(shí)序信號都與時(shí)鐘脈沖同步,在時(shí)鐘脈沖作用下產(chǎn)生節(jié)拍(電位信號),在節(jié)拍的作用下才能發(fā)出各種微操作,才能完成指令的執(zhí)行。
每種時(shí)序信號都應(yīng)含幾個(gè)時(shí)鐘周期,如訪問存貯器的存貯器讀周期,共需要4個(gè)節(jié)拍,T1、T2、T3、T4完成,如圖2-9所示.T1T2T3T4時(shí)鐘周期是時(shí)間計(jì)量的基本單位機(jī)器周期包含一到多個(gè)時(shí)鐘周期。指令周期包含一到多個(gè)機(jī)器周期 5)程序計(jì)數(shù)器PC
程序計(jì)數(shù)器專門用來提供指令地址的,也叫指令地址寄存器(請注意程序計(jì)數(shù)器PC和指令寄存器IR的區(qū)別),所有到存貯器中取指令都是由PC提供指令地址的。 指令地址有自動加1功能,即提供完該條指令地址后,便自動加1,形成下一條指令地址,所以也稱指令地址寄存器為計(jì)數(shù)器,它是執(zhí)行程序用的,所以也叫程序計(jì)數(shù)器,用PC表示。PC有自動加1的功能2.1.3微型機(jī)的工作過程微型機(jī)的工作過程就是執(zhí)行程序的過程,程序就是工作過程,也是控制器負(fù)責(zé)控制協(xié)調(diào)整個(gè)計(jì)算機(jī)自動、步調(diào)一致的工作的過程。
控制器的主要功能是從內(nèi)存中取出一條條指令(放在IR中),并指出當(dāng)前所取指令的下一條指令在內(nèi)存中的地址(PC自動加1的功能),對所取指令進(jìn)行譯碼和分析(ID),并產(chǎn)生相應(yīng)的電子控制信號(微操作控制線路),啟動相應(yīng)的部件執(zhí)行當(dāng)前指令規(guī)定的操作,周而復(fù)始地使計(jì)算機(jī)實(shí)現(xiàn)程序的自動執(zhí)行。由于指令中的地址碼可能就是參加運(yùn)算的操作數(shù)在內(nèi)存單元的直接地址,也可能只是參加運(yùn)算的操作數(shù)在內(nèi)存單元的間接地址,還可能是與操作數(shù)在內(nèi)存單元的真正地址總相差一個(gè)固定的偏差值的變址尋址的地址。因此計(jì)算機(jī)的指令尋址方式可分為:直接尋址方式間接尋址方式變址尋址方式………詳細(xì)在第3章介紹。計(jì)算機(jī)取出并執(zhí)行一條指令所花費(fèi)的時(shí)間稱為一個(gè)指令周期,而且通常還進(jìn)一步將指令周期分為更小的一些周期,如取指周期(訪問一次內(nèi)存儲器)、執(zhí)行周期(分析指令、取操作數(shù)、完成指令操作、準(zhǔn)備下一個(gè)指令周期--將指令計(jì)數(shù)器加1等)。
把計(jì)算機(jī)執(zhí)行一條指令的指令周期按照取指周期和執(zhí)行周期兩個(gè)周期作分別討論。指令周期=取指周期+執(zhí)行周期1.取指周期
由于指令是存放在主存儲器中,所以在指令周期的取指周期中,計(jì)算機(jī)通過訪問一次主存儲器,將指令從主存儲器中讀出并經(jīng)總線送入控制器的指令寄存器IR中。如右圖2所示程序計(jì)數(shù)器(PC)存儲地址寄存器(MAR)主存儲器(M.M)存儲數(shù)據(jù)寄存器(MDR)指令寄存器(IR)操作碼操作數(shù)地址2.指令執(zhí)行周期當(dāng)指令進(jìn)入指令寄存器IR之后,就開始指令執(zhí)行周期。執(zhí)行周期的任務(wù)是執(zhí)行指令要求的操作。為此,計(jì)算機(jī)要首先根據(jù)操作碼的性質(zhì)分析得出本條指令是指令還是操作數(shù),若是指令,則做取數(shù)操作:形成操作數(shù)地址并將它送入MAR。此外,還要根據(jù)本條指令的要求經(jīng)操作碼譯碼器形成執(zhí)行本指令所需要的各個(gè)控制命令。而后,依次完成取操作數(shù),完成本條指令所要求的操作并為下一個(gè)指令周期作好準(zhǔn)備(如屬順序執(zhí)行,則給PC加1;如屬非順序執(zhí)行,則由控制器產(chǎn)生新的指令地址),如圖2-11所示。操作碼操作數(shù)地址譯碼器控制器操作命令MARM·M主存MDR寄存器累加器ALU地址形成部件2.1.4微型機(jī)的工作過程舉例 微機(jī)的工作過程就是執(zhí)行程序的過程,程序就是工作過程,即某項(xiàng)工作按什么辦法解決。 例1:計(jì)算題Y=X1+X2-X3
計(jì)算機(jī)欲求解此算式,首先編出它的解題程序來,這個(gè)程序?qū)嶋H上就是解題步驟。第1步到存貯器某單元取出操作數(shù)X1,并送入累加器ACC中。第2步把ACC中的內(nèi)容(即剛?cè)∪氲腦1)與存貯器中另一個(gè)操作數(shù)X2相加,其結(jié)果保留在ACC中。第3步做減法,把ACC中的內(nèi)容(X1+X2的和)與存貯器中的第三個(gè)操作數(shù)X3相減,其結(jié)果還留在ACC中。第4步把計(jì)算結(jié)果存放到Y(jié)單元。第5步停機(jī)。
解此題共分上述5個(gè)步驟,可用5條指令表示: 第一條:取數(shù)指令,用MOVACC,X1表示 第二條:加法指令 用ADDACC,X2表示 第三條:減法指令 用SUB ACC,X3表示 第四條:存數(shù)指令 用MOVY,ACC表示 第五條:停機(jī)指令 用HLT表示 這五條指令就是求解Y=X1+X2-X3算式的程序。
把這個(gè)程序存放在存貯器中,入口地址為00H,每條指令占兩個(gè)單元(2個(gè)字節(jié)),第一個(gè)單元為操作碼,第二個(gè)單元為操作數(shù),共9個(gè)單元。
實(shí)質(zhì)上,微機(jī)的工作過程就是執(zhí)行指令的過程,已知指令在存貯器中,執(zhí)行指令分三步:即取出指令(送到IR)、分析指令(在ID)最后才執(zhí)行指令,可用右邊的流程圖說明微機(jī)的工作過程。下面結(jié)合圖2-12微機(jī)的主機(jī)結(jié)構(gòu)圖,詳細(xì)分析例1:計(jì)算題Y=X1+X2-X3的5條指令的執(zhí)行過程,第1條取數(shù)指令MOVACC,X1的執(zhí)行過程第一階段:取指令(也叫取指階段)圖2-12中的編號表示取指過程。把PC的內(nèi)容(第一條指令的地址)送到存貯地址寄存器MAR,可用傳送表達(dá)式(PC)->MAR表示,這里的()表示某某內(nèi)容,操作結(jié)果是(MAR)=00H,MAR直接把地址送地址譯碼器,經(jīng)譯碼后指向00H單元(也叫選中該單元),圖2-12中的①PC的內(nèi)容自動加1,形成下一地址,記作(PC)+1->PC,(PC)=01H圖2-12中②CPU發(fā)讀命令,用1->R表示,圖2-12中的③按照MAR提供的地址,到存貯器M找到該單元,在讀命令作用下,該單元(00H)中的內(nèi)容(指令操作碼)取出送入存貯數(shù)據(jù)寄存器MDR,可記作M[MAR]->MDR,(MDR)=OPCODE,圖2-12中的④MDR中的內(nèi)容送到指令寄存器IR,用(MDR)->IR表示。圖2-12中的⑤IR中的指令的操作碼送ID,進(jìn)行譯碼分析,記作OP[IR]->ID。圖2-12中的⑥
第1條指令的執(zhí)行 第二階段,執(zhí)行指令MOVACC,X1(也叫執(zhí)行階段)(PC)->MAR,(MAR)=01H;把PC的內(nèi)容(操作數(shù)X1的地址)送到存貯地址寄存器MAR(PC)+1->PC,(PC)=02H;PC的內(nèi)容自動加1,形成下一個(gè)地址1->R;CPU發(fā)讀命令
M[MAR]->MDR,(MDR)=X1;按照MAR提供的地址,到存貯器M中找到該單元,在讀命令作用下,該單元(01H)中的內(nèi)容(操作數(shù)X1)取出送入存貯數(shù)據(jù)寄存器MDR;(MDR)->ACC,(ACC)=X1;把存在MDR中的操作數(shù)X1送給累加器ACC
執(zhí)行第2條加法指令 :ADDACC,X2 第一階段,取指令,也分為6步(PC)->MAR,(MAR)=02H(PC)+1->PC,(PC)=03H;PC的內(nèi)容自動加1,形成下一個(gè)地址1->R;CPU發(fā)讀命令M[MAR]->MDR;(MDR)中是第二條指令的操作碼[MDR]->IR;第二條指令的操作碼送到指令寄存器IROP[IR]->ID;IR中的指令的操作碼送指令譯碼器ID,進(jìn)行譯碼分析,
執(zhí)行第2條加法指令 :ADDACC,X2經(jīng)分析后是加法指令,另一個(gè)操作數(shù)保存在03H號內(nèi)存單元,轉(zhuǎn)入執(zhí)行階段 第二階段,執(zhí)行指令階段(PC)->MAR,(MAR)=03H;把PC的內(nèi)容(操作數(shù)X2的地址)送到存貯地址寄存器MAR(PC)+1->PC,(PC)=04H;PC的內(nèi)容自動加1,形成下一個(gè)地址1->R;CPU發(fā)讀命令M[MAR]->MDR,(MDR)=X2;按照MAR提供的地址,到存貯器M中找到該單元,在讀命令作用下,把該單元(03H)中的內(nèi)容(操作數(shù)X2)取出送入存貯數(shù)據(jù)寄存器MDR;(ACC)+(MDR)->ACC(ACC)=X1+X2;
因(MDR)=X2(ACC)=X1
下面執(zhí)行第三條減法指令
SUB ACC,X3第一階段,取指令也分為6步(PC)->MAR,(MAR)=04H(PC)+1->PC,(PC)=05H1->R,發(fā)讀命令M[MAR]->MDR,(MDR)=第二條指令操作碼
[MDR]->IROP[IR]->ID經(jīng)分析后知道,這是一條減肥法指令,減數(shù)在OPCODE的下一個(gè)單元。第二階段,執(zhí)行指令階段(PC)->MAR,(MAR)=05H(PC)+1->PC,(PC)=06H1->RM[MAR]->MDR,(MDR)=X3(ACC)-(MDR)->ACC;即有(ACC)=X1+X2-X3
至此第三條指令執(zhí)行結(jié)束,下面執(zhí)行第四條存數(shù)指令MOVY,ACC
第一階段,取指令也分為6步(PC)->MAR,(MAR)=06H(PC)+1->PC,(PC)=07H1->R,發(fā)讀命令 M[MAR]->MDR,(MDR)=第二條指令操作碼[MDR]->IROP[IR]->ID
經(jīng)譯碼分析后可知,本條指令OP[IR]->ID是存數(shù)指令,把ACC的內(nèi)容存入到Y(jié)單元,設(shè)Y單元地址為07H。第二階段,執(zhí)行指令階段(PC)->MAR,(MAR)=07H(PC)+1->PC,(PC)=08H(ACC)->MDR1->W,發(fā)寫命令(MDR)->M[MAR]第四條指令結(jié)束,把ACC的內(nèi)容(X1+X2-X3)存入到Y(jié)單元中
下面執(zhí)行最后一條指令:停機(jī)指令HLT第一階段,取指令也分為6步(PC)->MAR,(MAR)=08H(PC)+1->PC,(PC)=09H1->R,發(fā)讀命令M[MAR]->MDR,(MDR)=第二條指令操作碼[MDR]->IROP[IR]->ID
經(jīng)譯碼分析后可知,本條指令是停機(jī)指令,到此程序執(zhí)行結(jié)束。2.28086MPU的結(jié)構(gòu)特點(diǎn)
8086MPU是INTEL公司在1978年6月推出一款典型的16位機(jī)。它的地址總線為20位。數(shù)據(jù)總線為16位,時(shí)鐘頻率為4MHZ。它的基本原理同基本微機(jī)工作原理相同。
但由于追求工作速度,它的內(nèi)部結(jié)構(gòu)又有新的改進(jìn),具體表現(xiàn)有三大特點(diǎn),即流水線結(jié)構(gòu),存儲器結(jié)構(gòu)和編程結(jié)構(gòu),8086MPU內(nèi)部結(jié)構(gòu)如圖2-12。內(nèi)部暫存器
IP
ES
SSDSCS輸入/輸出控制電路外部總線執(zhí)行部分控制電路123456∑ALU標(biāo)志寄存器AHALBHBLCHCLDHDLSPBPSIDI通用寄存器地址加法器指令隊(duì)列緩沖器執(zhí)行部件(EU)總線接口部件(BIU)16位20位16位8位通用寄存器四個(gè)專用寄存器SP:堆棧指針
BP:基址指針:
SI:源變址寄存器
DI:目的源變址寄存器
算術(shù)邏輯單元ALU:主要是加法器。大部分指令的執(zhí)行由加法器完成。標(biāo)志寄存器:16位字利用了9位。20位地址加法器四個(gè)段寄存器:CS、DS、SS、ESCS管理代碼段;DS管理數(shù)據(jù)段SS管理堆棧段;ES管理附加段.16位的指令指針寄存器IP:IP中的內(nèi)容是下一條指令對現(xiàn)行代碼段基地址的偏移量,6字節(jié)的指令隊(duì)列指令隊(duì)列共六字節(jié),總線接口部件BIU從內(nèi)存取指令,取來的總是放在指令隊(duì)列中;執(zhí)行部件EU從指令隊(duì)列取指令,并執(zhí)行。2.2.1流水線結(jié)構(gòu) 前面講過指令的執(zhí)行過程分為取指階段和執(zhí)行階段,且前一條指令執(zhí)行結(jié)束才執(zhí)行該條指令,該條指令執(zhí)行完后再執(zhí)行下面一條指令,一直執(zhí)行到最后一條指令,程序才執(zhí)行完,8086第一個(gè)改進(jìn)就是在執(zhí)行第一條指令的同時(shí)把下一條指令取來,這樣無形之中就省去了取下條指令的時(shí)間。提高了CPU的工作速度,這些就是采用流水線的技術(shù),因此把8086的MPU分成兩部分,一部分專門用來取指令,訪問存儲器用總線接口部件BIU,另一部分結(jié)構(gòu)用來執(zhí)行指令的操作叫執(zhí)行部件EU。1.8086MPU內(nèi)部結(jié)構(gòu)
8086MPU內(nèi)部結(jié)構(gòu)從圖2-12中可以看出,整個(gè)微處理器為實(shí)現(xiàn)流水線處理而分成兩大功能部件,即執(zhí)行部件(ExecutionUnit,EU)與總線接口部件(BusInterfaceUnit,BIU)。
1)總線接口部件(BIU)
總線接口部件BIU負(fù)責(zé)與存儲器、I/O接口電路連接,并形成20位的地址碼和16位的數(shù)據(jù),通過總線進(jìn)行數(shù)據(jù)傳送。BIU由一些專用寄存器、指令隊(duì)列緩沖器、地址加法器等功能部件組成。 (1)20位地址形成器
用來計(jì)算20位存儲地址。8086是用20位地址尋址1M字節(jié)的內(nèi)存空間,但8086內(nèi)部所有的寄存器都是16位的。所以需要由一個(gè)附加的機(jī)構(gòu)來根據(jù)16位寄存器提供的信息來進(jìn)行20位的物理地址的形成,才能訪問存貯器。 ①四個(gè)段地址寄存器
CS——16位代碼段寄存器。 DS——16位數(shù)據(jù)段寄存器。 ES——16位附加段寄存器。 SS——16位堆棧段寄存器。
指令指針寄存器IP ②地址合成器∑
將段寄存器內(nèi)容左移4位(相當(dāng)于×16),然后再與偏移地址相加而成的。偏移地址來自EU,有的直接用EU中的16位寄存器,如SI,DI,SP,BP,和BX,有的也有用兩個(gè)寄存器在ALU中相加出來的。這些地址通過ALU數(shù)據(jù)總線傳送到BIU中的暫存器,然后再送入∑中合成,但是形成存放指令的20位物理地址的偏移地址是BIU中的IP,20位物理地址PA,合成框圖如圖2-13?!贫渭拇嫫?6位*10H16位偏移地址000020位物理地址(2)指令寄存器
指令寄存器IR則由指令隊(duì)列器擔(dān)當(dāng)。指令隊(duì)列緩存器是一組寄存器(8位),用來暫存從存儲器中取出來的指令,有6個(gè)字節(jié)(8088為4個(gè)字節(jié))。指令隊(duì)列采用“FIFO”(先進(jìn)行出)的管理方式,允許預(yù)取6字節(jié)的指令代碼。即通過地址加法器根據(jù)CS和IP的內(nèi)容得到一個(gè)指令的物理地址。取指和執(zhí)行指令的操作是并行的,從而提高了CPU的效率。
(3)總線控制邏輯
負(fù)責(zé)BIU的操作,向內(nèi)與CPU相連,向外與存儲器/I/O口有聯(lián)系,當(dāng)與存儲器聯(lián)系時(shí),啟動一次總線周期,訪問一次存儲器(讀周期/寫周期),一個(gè)總線周期內(nèi)先提供提供偶數(shù)地址,后提供奇數(shù)地址,偶數(shù)地址訪問低8位數(shù)據(jù),奇地址訪問高8位數(shù)據(jù)。用于產(chǎn)生存儲器讀/寫,I/O讀/寫控制信號。 2)執(zhí)行部件(EU)
執(zhí)行部件EU是執(zhí)行程序的的核心部件,完成指令譯碼、運(yùn)算及其它操作的執(zhí)行。執(zhí)行部件由ALU(算術(shù)邏輯運(yùn)算部件)、通用寄存器組、狀態(tài)標(biāo)志寄存器以及控制電路組成。功能是完成指令的譯碼和執(zhí)行指令的工作,向BIU提供偏移地址(16位)。
(1)算術(shù)邏輯運(yùn)算部件ALU
16位ALU用來對8位或16位操作數(shù)進(jìn)行算術(shù)邏輯運(yùn)算。 (2)標(biāo)志寄存器(FR)
16位標(biāo)志寄存器用來表示ALU運(yùn)算后的結(jié)果特征,為下一條指令的執(zhí)行提供操作信息。
2)執(zhí)行部件(EU)
執(zhí)行部件EU是執(zhí)行程序的的核心部件,完成指令譯碼、運(yùn)算及其它操作的執(zhí)行。執(zhí)行部件由ALU(算術(shù)邏輯運(yùn)算部件)、通用寄存器組、狀態(tài)標(biāo)志寄存器以及控制電路組成。功能是完成指令的譯碼和執(zhí)行指令的工作,向BIU提供偏移地址(16位)。
(3)通用寄存器
共有8個(gè)16位的寄存器組,AX,BX,CX,DX稱為通用寄存器組。SP,BP,DI,SI為專用寄存器組。 (4)控制部件
主要用于取指令的控制和時(shí)序控制。
2.2.28086MPU的編程結(jié)構(gòu)
所謂編程結(jié)構(gòu)是指8086在程序編寫中運(yùn)用哪些寄存器,在8086的EU和BIU兩部分中包含有一些工作寄存器,這些寄存器用到存放計(jì)算過程中的各種信息,如操作數(shù)地址、操作數(shù)及運(yùn)算的中間結(jié)果等。微處理器從寄存器中存取數(shù)據(jù)比從存儲器中存取數(shù)據(jù)要快得多,因此,在計(jì)算過程中,合理利用寄存器保存操作數(shù)、中間結(jié)果或其它信息,能提高程序的運(yùn)行效率。根據(jù)這些寄存器所起的作用,8086寄存器組可以分為通用寄存器、專用寄存器和段寄存器三類,如圖2-3所示。下面分別介紹這些寄存器。
通用寄存器
通用寄存器包括了8個(gè)16位的寄存器:AX、BX、CX、DX、SP、BP、DI及SI。
其中AX、BX、CX、DX在一般情況下作為通用的數(shù)據(jù)寄存器,用來暫時(shí)存放計(jì)算過程中所用到的操作數(shù)、結(jié)果或其他信息。它們還可分為兩個(gè)獨(dú)立的8位寄存器使用,命名為AL、AH、BL、BH、CL、CH、DL和DH,使之與8位機(jī)兼容。通用寄存器4個(gè)通用數(shù)據(jù)寄存器除通用功能外,還有如下專門用途:AX作為累加器用,所以它是算術(shù)運(yùn)算的主要寄存器。在乘除指令中指定用來存放操作數(shù)。另外,所有的I/O指令都使用AX或AL與外部設(shè)備傳送信息。BX在計(jì)算存儲器偏移地址時(shí),可作為基址寄存器使用。CX常用來保存計(jì)數(shù)值,如在移位指令、循環(huán)指令和串處理指令中用作隱含的計(jì)數(shù)器。DX在作雙字長運(yùn)算時(shí),可把DX和AX組合在一起存放一個(gè)雙字長數(shù),DX用來存放高16位數(shù)據(jù)。此外,對某些I/O操作,DX可用來存放I/O的端口地址。 SP、BP、SI、DI四個(gè)16位寄存器可以象數(shù)據(jù)寄存器一樣在運(yùn)算過程中存放操作數(shù),但它們只能以字(16位)為單位使用。此外,它們更經(jīng)常的用途是在存儲器尋址時(shí),提供偏移地址。因此,它們可稱為指針或變址寄存器(變址地址指針)。SP稱為堆棧指針指示器或堆棧指示器,用來指出棧頂?shù)钠频刂?。BP稱為基址指針寄存器,在尋址時(shí)作為基地址寄存器產(chǎn)生偏移地址使用,但它必須與堆棧段寄存器SS聯(lián)用來確定堆棧段中的存儲單元地址。 SP、BP、SI、DI四個(gè)16位寄存器可以象數(shù)據(jù)寄存器一樣在運(yùn)算過程中存放操作數(shù),但它們只能以字(16位)為單位使用。此外,它們更經(jīng)常的用途是在存儲器尋址時(shí),提供偏移地址。因此,它們可稱為指針或變址寄存器(變址地址指針)。SI為源變址寄存器,在串處理指令中,SI作為隱含的源變址寄存器與DS聯(lián)用,以確定數(shù)據(jù)段中的存儲單元地址,并有自動增量和自動減量的變址功能。DI為目的變址寄存器,在串處理指令中,DI和附加段寄存器ES聯(lián)用,以達(dá)到在附加段中尋址的目的,然后DI自動增量或減量。2)專用寄存器
8086的專用寄存器包括IP、SP和FLAGS三個(gè)16位寄存器。IP為指令指針寄存器,它用來存放將要執(zhí)行的下一條指令地址的偏移地址,它與段寄存器CS聯(lián)合形成代碼段中指令的物理地址。在計(jì)算機(jī)中,控制程序的執(zhí)行流程就是通過控制IP的值來實(shí)現(xiàn)的。SP為堆棧指針寄存器,它與堆棧段寄存器SS聯(lián)用來確定堆棧段中棧頂?shù)牡刂罚簿褪钦fSP用來存放棧頂?shù)钠频刂?。FLAGS為標(biāo)志寄存器,這是一個(gè)存放條件碼標(biāo)志、控制標(biāo)志的16位寄存器。15------1211109876543210OFDFIFTFSFZFAFPFCF
16位標(biāo)志寄存器含有9個(gè)有效標(biāo)志位。其中6位用于狀態(tài)標(biāo)志位,3位用于控制標(biāo)志。 ⑴狀態(tài)標(biāo)志位(6個(gè)):
用來為下一條指令執(zhí)行指明ALU處于的狀態(tài),也稱為條件標(biāo)志位或程序狀態(tài)字。這些狀態(tài)會影響后面的操作。CF(CarryFlag)進(jìn)位標(biāo)志位:運(yùn)算中發(fā)生進(jìn)位或借位時(shí),CF=1;否則,CF=0。用STC指令可置CF=1,CLC指令置CF=0。CMC指令對CF求反;循環(huán)指令也會影響該標(biāo)志位。AF(AuxiliaryCarryFlag)輔助進(jìn)位標(biāo)志位:字節(jié)操作時(shí),在運(yùn)算結(jié)果的低4位向高4位有進(jìn)位(加法)或有借位(減法);在字操作時(shí),低字節(jié)向高字節(jié)有進(jìn)位(加)或借位(減)時(shí),則AF=1,否則AF=0。該標(biāo)志一般在BCD碼運(yùn)算中作為是否進(jìn)行十進(jìn)制調(diào)整的判斷依據(jù)。⑴狀態(tài)標(biāo)志位(6個(gè)):OF(OverflowFlag)溢出標(biāo)志位:當(dāng)運(yùn)算結(jié)果超出機(jī)器的表示范圍時(shí),OF=1;否則OF=0。如:帶符號數(shù)的操作數(shù),當(dāng)按字節(jié)運(yùn)算超出-128~+127;按字運(yùn)算超出-32768~+32767范圍時(shí),OF=1;SF(SignFlag)符號標(biāo)志位:在有符號運(yùn)算數(shù)的算術(shù)運(yùn)算時(shí),當(dāng)運(yùn)算結(jié)果為負(fù)時(shí),SF=1;否則SF=0。ZF(ZeroFlag)零標(biāo)志位:運(yùn)算結(jié)果為零時(shí),ZF=1;否則ZF=0。PF(ParityFlag)奇偶標(biāo)志位:當(dāng)運(yùn)算的結(jié)果的低8位“1”的個(gè)數(shù)為偶數(shù)時(shí),PF=1;否則PF=0。⑵控制標(biāo)志位(3個(gè))
用來控制CPU的某些特定操作。這3個(gè)控制標(biāo)志可以編程設(shè)置,故稱為控制標(biāo)志位。DF(DirectionFlag)方向標(biāo)志位:控制串操作指令對字符串處理的方向。DF=0時(shí),變址地址指針SI,DI作增量操作,即由低地址向高地址進(jìn)行串操作,字節(jié)操作增量為1,字操作增量為2;DF=1時(shí),作減量操作,即由高地址向低地址進(jìn)行串操作。用STD指令可置DF=1,CLD指令置DF=0。IF(InterruptFlag)中斷允許標(biāo)志位:控制可屏蔽中斷的標(biāo)志。當(dāng)IF=1時(shí),允許CPU響應(yīng)屏蔽中斷請求;當(dāng)IF=0時(shí),禁止響應(yīng)。用STI指令可置IF=1,CLI指令置IF=0。TF(TrapFlag)陷井標(biāo)志位:這是為程序調(diào)試而提供的CPU單步工作方式。若TF=1時(shí),CPU每執(zhí)行完一條指令就產(chǎn)生一個(gè)內(nèi)部中斷(單步中斷),以便對每條指令的執(zhí)行結(jié)果進(jìn)行跟蹤調(diào)查。3)段寄存器
8086微處理器共有4個(gè)16位的段寄存器,在尋址內(nèi)存單元時(shí),用它們直接或間接地存放段起始地址。代碼段寄存器CS:存放當(dāng)前執(zhí)行的程序的段地址。數(shù)據(jù)段寄存器DS:存放當(dāng)前執(zhí)行的程序所用操作數(shù)的段地址。堆棧段寄存器SS:存放當(dāng)前執(zhí)行的程序所用堆棧的段地址。附加段寄存器ES:存放當(dāng)前執(zhí)行程序中一個(gè)輔助數(shù)據(jù)段的段地址。2.2.38086MPU的存貯分段結(jié)構(gòu)-存貯器的管理 1.字的存放方法
8086MPU的存儲容量為1MB,其地址為20位,地址排列為小地址在上面,大地址在下面
8086MPU的是按字存放在存儲器,一個(gè)字定義為2個(gè)字節(jié)(16bit),占相鄰兩個(gè)字節(jié)單元規(guī)定低字節(jié)數(shù)據(jù)存放低地址單元,高字節(jié)數(shù)據(jù)存放高地址單元;例如二個(gè)字2B0AH和F54DH的存放方法如圖2-18…低地址0A高地址2B….…低地址4D高地址F5…圖2-188086MPU存儲器字的存放方法2.字單元地址的確定
當(dāng)一個(gè)字存放在相鄰兩個(gè)字節(jié)單元時(shí),則字存貯單元有兩個(gè)地址,那么規(guī)定低字節(jié)數(shù)據(jù)占的字節(jié)單元地址即低地址做為該存貯字的字地址,圖2-19為數(shù)據(jù)1100H,4433H,7766H,8877H的存貯字的結(jié)構(gòu)圖,設(shè)字節(jié)單元地址從1000H開始,可見數(shù)據(jù)1100H的字地址是1000H,4433H的字地址是1003H,7766H的字地址是1006H,8877H字地址是1007H。還可見有重迭的地方。地址存儲字1000H001100H1001H111002H221003H334433H1004H441005H551006H667766H8877H1007H771008H881009H99100AHAA…….……圖2-19規(guī)則存放字與非規(guī)則存放字3.規(guī)則存放字與非規(guī)則存放字 1)規(guī)則存放字
凡是字單元地址是偶地址的存放字叫做規(guī)則存放字。
如:存貯字的1100H、7766H、都是規(guī)則存放字。 2)非規(guī)則存放字
凡字地址是奇地址的存放字都叫非規(guī)則存放字。
當(dāng)然要求或者希望都按規(guī)則存放字存放。
4、奇地址體與偶地址體
一個(gè)1MB的存貯器按規(guī)則存放字規(guī)則存放,那么8086的存貯器可分成兩個(gè)存貯體,一個(gè)叫奇地址體一個(gè)叫偶地址體。如圖2-20,每個(gè)體的存儲器容量512KB。偶地址體奇地址體00000H00002H00004H0FFFCH0FFFEH0FFFDH0FFFFHA19~A1D7~D0D15~D8A0圖2-20奇地址體與偶地址體
偶地址體地址為00000H到0FFFEH,其地址的A0位都是“0”,奇地址體地址為000001H到0FFFFH,其地址A0都為“1”,偶地址體的地址為字地址。 考慮到與8位機(jī)兼容,所以8位數(shù)可能放在偶地址內(nèi)也可能放在奇地址體中,所以操作時(shí)有一個(gè)選體信號伴隨,偶地址體的選體信號用A0,奇地址體選體信號為,兩個(gè)選體信號與被訪問傳送的字節(jié)關(guān)系如表2-2表2-2存儲器內(nèi)部傳送的數(shù)據(jù)表AD0選體傳送的字節(jié)數(shù)據(jù)00奇/偶地址體同時(shí)傳送高低兩個(gè)字節(jié)(一個(gè)字)數(shù)10偶地址體傳送奇地址體中的8位數(shù)據(jù)01奇地址體傳送偶地址體中的8位數(shù)據(jù)11未選中不傳送數(shù)據(jù)5.存儲器的分段結(jié)構(gòu) 1)分段原則
16個(gè)邏輯段允許段與段之間相鄰、不相鄰、重疊或部分重疊。設(shè)有A、B、C、D、E五個(gè)邏輯段地址空間,如圖2-21所示。A段C段D段B段E段相鄰部份重迭重迭不相鄰地址圖2-21邏輯段之間的分配關(guān)系 (2)用戶邏輯段
16個(gè)邏輯中分配給用戶4個(gè)邏輯段就夠用戶用了,其中一個(gè)邏輯段用來存放代碼(指令),一個(gè)段落用來放源操作數(shù),一個(gè)邏輯段用來存放操作數(shù)結(jié)果,還有一個(gè)用來當(dāng)堆棧使用。 四個(gè)邏輯段的起始地址可放在段寄存器中,16位地址。存放代碼邏輯段的叫代碼段,起始地址在CS中;存放數(shù)據(jù)的邏輯段叫數(shù)據(jù)段,起始地址放在DS中;存放操作結(jié)果的邏輯段叫附加段,起始地址放在ES中。當(dāng)堆棧用的邏輯段叫堆棧段,起始地址存放在SS中。四個(gè)段的地址空間也遵循段原則,如圖2-22所示。
CS
代碼段重疊ES
附加段
SS
堆棧段DS
數(shù)據(jù)段
2)物理地址和偏移地址 (1)物理地址
存貯器中的每一個(gè)字節(jié)數(shù)的實(shí)際地址都是20位地址叫物理地址。 (2)偏移地址
為了方便程序設(shè)計(jì),每個(gè)邏輯段的存貯容量為64KB,用16位地址表示,所以每一個(gè)存貯單元都是16位地址,稱此地址為邏輯地址,段內(nèi)的邏輯地址叫做偏移地址,偏移地址是某個(gè)字節(jié)存放地址距段起始地址偏離了多少個(gè)存貯單元數(shù).如圖2-23所示。偏移地址
物理地址DS=1000H
EA=0001H
10001HEA=0002H
10002HEA=0003H
10003H
……XXXXH
1XXXXH
……圖2-23編碼地址與物理地址
不同用途的字節(jié)單元的物理地址求法不同。
①取指令其段基址用的是CS,而偏移地址用指令指示器IP即CS*10H+IP=PA(PA的物理地址)②取源操作數(shù),通常段地址用DS,偏移地址由EA提供的有效地址。DS*10H+EA=PA③串操作,串是字符串,即一串字符。如:“PASSAT”,對字符串操作不外乎是搬家,重組等等。搬家前的字符串叫源串,搬到另一個(gè)地方的字符串叫目的串。對源串用段基址的是DS提供基地址,偏移地址則用SI,PA=DS*10H+SI,目的串,基地址用ES,偏移地址用DI,PA=ES*10H+DI。④堆棧操作時(shí),段基地址用SS,偏移地址用堆棧指針SP,PA=SS*10H+SP。3)有效地址EA
數(shù)據(jù)的偏移地址來自EU,包括以下幾個(gè)方面:
①指定某16bit的寄存器做為有效地址EA,有BX,BP,SI,DI,SP等等 ②指定兩個(gè)寄存器在ALU中計(jì)算,計(jì)算出來的結(jié)果為有效地址EA
如:BX+SI,BP+SI,BX+DI,BP+DI ③也有用一個(gè)或兩個(gè)寄存器再加上一人8位或16位的位移量DISP得到的有效地址EA
如:[BX+10H],[BX+SI+3000H],……以上內(nèi)容在尋址方式章節(jié)還要指明。
4)堆棧
堆棧是在內(nèi)存中開辟的一個(gè)特定區(qū)域。堆棧段是程序中不可或缺的一個(gè)內(nèi)存區(qū),常用來臨時(shí)存放數(shù)據(jù)、保存?zhèn)鬟f參數(shù)、恢復(fù)寄存器中的數(shù)據(jù)。這個(gè)工作區(qū)對數(shù)據(jù)的操作是在一端進(jìn)行,稱這個(gè)端叫棧頂。堆棧的建立:在內(nèi)存中開辟的一個(gè)特定的存儲區(qū)叫堆棧段。棧頂:堆棧的最低地址所指向的內(nèi)存單元棧底:堆棧的最高地址所指向的內(nèi)存單元
4)堆棧8086MPU的堆棧段,它的段基值地址設(shè)在段寄存器SS中,偏移地址設(shè)在SP中。
棧頂?shù)奈锢淼刂肥荘A=SS*10H+SP8086MPU的堆棧采用地址向下(從高地址到低地址)生成的編址方式。SP永遠(yuǎn)指向棧頂。用堆棧指針SP指示對堆棧的操作:包括數(shù)據(jù)的入棧,出棧,數(shù)據(jù)的入棧,出棧只能從棧頂SP進(jìn)出,不能從棧底進(jìn)出因此棧頂是浮動的,如果堆棧為空棧,那么SP指向棧底。
4)堆棧 (1)堆棧的操作 對堆棧有兩種操作:入棧,出棧
①入棧,也叫壓棧,是把一個(gè)16位數(shù)據(jù)推入棧中,保護(hù)起來,壓棧的操作順序是SP的內(nèi)容先減2,指示一個(gè)新的字單元,然后再把該壓的字壓入這個(gè)單元中。 例如:設(shè)AX內(nèi)容為1234H,棧的數(shù)據(jù)為(SS)=2000H,(SP)=0108H,將AX內(nèi)容1234H壓入堆棧。 由圖可見,壓棧前(SP)=0108H,壓棧后(SP)=0106H,SP永遠(yuǎn)指示棧頂。補(bǔ)圖②出棧出棧操作順序同入棧順序相反,是先將SP指示棧頂內(nèi)容,彈出到指定的一個(gè)寄存器,然后SP內(nèi)容加2重新確定一個(gè)棧頂?shù)刂?。總結(jié):存儲信息的基本單位是二進(jìn)制數(shù)字0,1,在1M字節(jié)的存儲空間,每個(gè)存儲單元的地址由20位二進(jìn)制數(shù)組成,常用5位十六進(jìn)制數(shù)表示,其地址范圍是00000H~FFFFFH。16位字長可以訪問的存儲空間是64K字節(jié),地址范圍是0000~FFFFH。8086的實(shí)模式:存儲器分段就是把1M字節(jié)存儲空間劃分成16個(gè)段,每個(gè)段由64KB連續(xù)的字節(jié)單元構(gòu)成,段內(nèi)的起始地址是0,末地址是0FFFFH。由邏輯地址計(jì)算物理地址PA的方法是:把段地址左移4位,低4位補(bǔ)0,再加上偏移地址,便形成了物理地址,其公式是:物理地址PA=段基值*10H+偏移量。段寄存器和仿移地址結(jié)合的方式:代碼段寄存器CS——IP堆棧段寄存器SS——SP、BP數(shù)據(jù)段寄存器DX——BX、SI、DI附加段寄存器ES——DI堆棧工作方式是先進(jìn)后出即后進(jìn)先出。堆棧指針指示器簡稱為SP。Intel系列微處理器的堆棧采用地址向下(從高地址到低地址)生成的編址方式。堆棧的2種操作:壓棧(
SP-2)、出棧(
SP+2)。2.2.4總線周期 1.概念:
為了讓取指令和傳送數(shù)據(jù)協(xié)調(diào)工作,就需要CPU的總線接口部件執(zhí)行一個(gè)總線周期。 2.組成:
在8086中,一個(gè)最基本的總線周期由四個(gè)T狀態(tài)組成,每個(gè)T狀態(tài)為一個(gè)時(shí)鐘周期,時(shí)鐘周期是CPU的基本時(shí)間計(jì)量單位,它由計(jì)算機(jī)主頻決定。例如:8086主頻為10MHZ,一個(gè)時(shí)鐘周期就是100ns。 一個(gè)最基本的總線周期,常將四個(gè)時(shí)鐘周期分別稱為四個(gè)狀態(tài),即T1狀態(tài),T2狀態(tài),T3狀態(tài),T4狀態(tài)。
3.總線周期四個(gè)狀態(tài)的操作:
⑴在T1狀態(tài)下,CPU往20位的地址/狀態(tài)和地址/數(shù)據(jù)復(fù)用的總線上發(fā)送地址信號,指出要尋址的存儲單元或端口地址。同時(shí),發(fā)出地址鎖存信號ALE,將這個(gè)地址送入地址鎖存器。 ⑵在T2狀態(tài),CPU從總線上撤銷地址,使總線低16位浮空成高阻抗?fàn)顟B(tài)(讀總線周期),為讀入數(shù)據(jù)做準(zhǔn)備;或?qū)?shù)據(jù)放到數(shù)據(jù)總線,為傳送數(shù)據(jù)做準(zhǔn)備(寫)??偩€的高4位(A19~A16)做為來輸出總線周期的狀態(tài)信息,這些狀態(tài)信息用來表示當(dāng)前使用的段寄存器名,中斷允許狀態(tài)等。 ⑶在T3狀態(tài),總線高4位信息狀態(tài)不變,而在地址總線的低16位上出現(xiàn)CPU輸出的數(shù)據(jù)或者CPU從接口或存儲器輸入的數(shù)據(jù)。 ⑷在T4狀態(tài)下,總線周期結(jié)束。4.說明
①只有在CPU和內(nèi)存或I/O接口之間傳輸數(shù)據(jù),以及填充指令隊(duì)列時(shí),CPU才執(zhí)行總線周期;否則系統(tǒng)處于空閑狀態(tài)。 在空閑狀態(tài),高4位上,CPU仍然驅(qū)動前一個(gè)總線周期的狀態(tài)信息;而低16位,若前一個(gè)周期為寫周期,則繼續(xù)為數(shù)據(jù)信息,若為讀周期,則為高阻狀態(tài)。 ②指令周期:執(zhí)行一條指令所需時(shí)間,由若干總線周期組成。2.2.58086引腳及功能
8086MPU為雙列直插式(DIP)40條引腳,20條地址線和16條數(shù)據(jù)線復(fù)用,另4條地址線與狀態(tài)信號線復(fù)用,見圖2-15。
1)數(shù)據(jù)和地址總線:
⑴AD15~AD0:分時(shí)復(fù)用的地址數(shù)據(jù)線,雙向。(輸入/輸出,三態(tài)) ⑵A19/S6~A16/S3地址/狀態(tài)復(fù)用引腳.(輸出三態(tài)) 在T2至T4期間作為S6~S3狀態(tài)線用。狀態(tài)線特征如表2-3: S3、S4的代碼組合與段寄存器關(guān)系S4S3當(dāng)前使用的段寄存器00
ES01
SS10對存儲器尋址時(shí),使用CS段;對I/O或中斷矢量尋址時(shí)不用段寄存器11
DS
S5
溫馨提示
- 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)方式做保護(hù)處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 2025年度文化產(chǎn)業(yè)產(chǎn)權(quán)轉(zhuǎn)讓與市場推廣合同
- 2025年度委托收款與新能源項(xiàng)目合作合同
- 2025年度乙方轉(zhuǎn)丙方特許經(jīng)營合同模板
- 2025年度家居裝修工人安全責(zé)任免除協(xié)議書
- 2025年度電影演員檔期聘用合同
- 2025年度土地承包經(jīng)營權(quán)流轉(zhuǎn)與農(nóng)村電商合作合同
- 2025年度危重病人治療免責(zé)協(xié)議書(特定醫(yī)療機(jī)構(gòu)版)
- 2025年度文化產(chǎn)業(yè)發(fā)展自愿退股及項(xiàng)目運(yùn)營合同模板
- 2025年度養(yǎng)老機(jī)構(gòu)委托管理及運(yùn)營合作協(xié)議范本
- 信訪接待室改造工程合同
- 民盟入盟申請書(通用6篇)
- XX精神科醫(yī)生述職報(bào)告(四篇合集)
- 給家里人做一頓飯
- 《嬰兒撫觸》課件
- 第1課《化石的故事》課件
- 人教PEP版六年級下冊英語全冊課件(2024年2月修訂)
- 城市智慧交通管理系統(tǒng)
- 飛行中鳥擊的危害與防范
- 青少年人工智能技術(shù)水平測試一級04
- 核安全與核安全文化課件
- 《“健康中國2030”規(guī)劃綱要》全文健康中國2030規(guī)劃綱要全文
評論
0/150
提交評論