版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡(jiǎn)介
第3章微型計(jì)算機(jī)的基本工作原理第3章微型計(jì)算機(jī)的基本工作原理本章教學(xué)目的本章以一個(gè)簡(jiǎn)化了的計(jì)算機(jī)作為分析對(duì)象,逐步講述一般計(jì)算機(jī)的各種基本功能,從而概括出微型計(jì)算機(jī)的基本工作原理。本章教學(xué)目的本章以一個(gè)簡(jiǎn)化了的計(jì)算機(jī)作為分析對(duì)象,逐步講述一本章學(xué)習(xí)要求1.掌握模型機(jī)的簡(jiǎn)化形式;模型機(jī)各部件的功能與作用;基于模型機(jī)的編程過程。位(Bit)、字(Word)、字節(jié)(Byte)、中央處理單元(CPU)等名詞術(shù)語。
2.理解指令的意義;指令周期;控制字的含義。
3.了解程序設(shè)計(jì)步驟;控制部件的構(gòu)成及其工作原理,模型機(jī)的功能擴(kuò)展,現(xiàn)代技術(shù)在微型集中的應(yīng)用。
本章學(xué)習(xí)要求1.掌握2.理解3.了解本章主要外語詞匯PROM:ProgrammableReadOnlyMemory,可編程只讀存儲(chǔ)器CM:ControlMatrix,控制矩陣Bit:位Byte:字節(jié)Word:字本章主要外語詞匯PROM:ProgrammableRea主要內(nèi)容微型計(jì)算機(jī)結(jié)構(gòu)的簡(jiǎn)化形式指令系統(tǒng)控制部件程序設(shè)計(jì)及執(zhí)行指令的例行程序微機(jī)功能擴(kuò)展初級(jí)程序設(shè)計(jì)舉例現(xiàn)代技術(shù)在微機(jī)中的應(yīng)用主要內(nèi)容微型計(jì)算機(jī)結(jié)構(gòu)的簡(jiǎn)化形式3.1微型計(jì)算機(jī)結(jié)構(gòu)的簡(jiǎn)化形式微型計(jì)算機(jī)的基本功能能運(yùn)算、能判別及能決策;速度快模型機(jī)簡(jiǎn)化了的微型計(jì)算機(jī)可以根據(jù)模型機(jī)理解各個(gè)基本電路和部件之間的信息流通過程,指令系統(tǒng)的意義,程序設(shè)計(jì)的步驟,控制部件的功能及其結(jié)構(gòu),還有控制矩陣產(chǎn)生控制字的過程等等3.1微型計(jì)算機(jī)結(jié)構(gòu)的簡(jiǎn)化形式微型計(jì)算機(jī)的基本功能模型機(jī)的結(jié)構(gòu)特點(diǎn)
功能簡(jiǎn)單:只能做兩個(gè)數(shù)的加減法。
內(nèi)存量小:只有一個(gè)16×8PROM(可編程序只讀存儲(chǔ)器)。
字長8位:二進(jìn)制8位顯示。
手動(dòng)輸入:用撥動(dòng)開關(guān)輸入程序和數(shù)據(jù)模型機(jī)的結(jié)構(gòu)特點(diǎn)功能簡(jiǎn)單:只能做兩個(gè)數(shù)的加減法。模型機(jī)的硬件結(jié)構(gòu)1模型機(jī)的硬件結(jié)構(gòu)1模型機(jī)的硬件結(jié)構(gòu)21.程序計(jì)數(shù)器PC計(jì)數(shù)范圍由0000~1111(0~F)。每次運(yùn)行之前,先復(fù)位至0000。當(dāng)取出一條指令后,PC應(yīng)加1。2.存儲(chǔ)地址寄存器MAR接收來自PC的二進(jìn)制程序號(hào),作為地址碼送至PROM去。模型機(jī)的硬件結(jié)構(gòu)21.程序計(jì)數(shù)器PC模型機(jī)的硬件結(jié)構(gòu)3可編程序只讀存儲(chǔ)器PROM可編程序ROM,每條橫線與豎線都有一條由開關(guān)和二極管串聯(lián)的電路將它們連接起來。因此,只要撥動(dòng)開關(guān),即可使該數(shù)據(jù)位置1或置0PROM同時(shí)具有RAM和ROM功能。右圖是4×4PROM的電路圖16×8PROM的橫線應(yīng)為16條(R0~R15),豎線為8條(D7D6…D0),地址碼線應(yīng)為4條(A3A2A1A0)模型機(jī)的硬件結(jié)構(gòu)3可編程序只讀存儲(chǔ)器PROM模型機(jī)的硬件結(jié)構(gòu)44.指令寄存器IRIR從PROM接收指令字(當(dāng)LI=1,ER=1),同時(shí)將指令字分送到控制部件CON和W總線上去。指令字是8位的:××××
××××
MSB
LSB左4位為最高有效位(高4位),稱為指令字段;右4位為最低有效位(低4位),稱為地址字段。5.控制部件CON(1)每次運(yùn)行前,CON先發(fā)出CLR=1,使有關(guān)的部件清0。此時(shí):
PC=0000
IR=0000
0000(2)CON能發(fā)出同步脈沖CLK到各個(gè)部件去,使它們同步運(yùn)行。(3)在CON中有控制矩陣CM,能根據(jù)IR送來的指令發(fā)出12位的控制字:
CON=CPEPLMERLIEILAEASUEULBLO根據(jù)控制字中各位的置1或置0情況,計(jì)算機(jī)就能自動(dòng)地按指令程序運(yùn)行模型機(jī)的硬件結(jié)構(gòu)44.指令寄存器IR模型機(jī)的硬件結(jié)構(gòu)56.累加器A用以儲(chǔ)存計(jì)算機(jī)運(yùn)行期間的中間結(jié)果。它能接收W總線送來的數(shù)據(jù)(LA=1),也能將數(shù)據(jù)送到W總線上去(EA=1)。它還有一個(gè)數(shù)據(jù)輸出端,將數(shù)據(jù)送至ALU去進(jìn)行算術(shù)運(yùn)算。這個(gè)輸出是雙態(tài)的,即是立即地送去,而不受E門的控制。7.算術(shù)邏輯部件ALU它只是一個(gè)二進(jìn)制補(bǔ)碼加法器/減法器(參見圖1.9)。當(dāng)SU=0,ALU,進(jìn)行加法A+B;當(dāng)SU=1,ALU,進(jìn)行減法A-B,即(A+B′)。8.寄存器B將要與A相加減的數(shù)據(jù)暫存于此寄存器。它到ALU的輸出也是雙態(tài)的,即無E門控制。模型機(jī)的硬件結(jié)構(gòu)56.累加器A模型機(jī)的硬件結(jié)構(gòu)69.輸出寄存器O計(jì)算機(jī)運(yùn)行結(jié)束時(shí),累加器A中存有答案。如要輸出此答案,就得送入O。此時(shí)EA=1,LO=1,則O=A。典型的計(jì)算機(jī)具有若干個(gè)輸出寄存器,稱為輸出接口電路。這樣就可以驅(qū)動(dòng)不同的外圍設(shè)備,如打印機(jī)、顯示器等。10.二進(jìn)制顯示器D這是用發(fā)光二極管(LED)組成的顯示器。每一個(gè)LED接到寄存器O的一位上去。當(dāng)某位為高電位時(shí),則該LED發(fā)光。因?yàn)榧拇嫫鱋是8位的,所以這里也由8個(gè)LED組成顯示器。模型機(jī)的硬件結(jié)構(gòu)69.輸出寄存器O模型機(jī)的硬件結(jié)構(gòu)7總體來說,模型機(jī)可以如下劃分中央處理器CPU(包括PC,IR,CON,ALU,A及B);記憶裝置M(MAR及PROM);輸入/輸出I/O接口(包括O及D)模型機(jī)的硬件結(jié)構(gòu)7總體來說,模型機(jī)可以如下劃分模型機(jī)的硬件結(jié)構(gòu)8中央處理器(centralprocessingunit,
CPU)將程序計(jì)數(shù)功能(PC)、指令寄存功能(IR)、控制功能(CON)、算術(shù)邏輯功能(ALU)以及暫存中間數(shù)據(jù)功能(A及B)集成在一塊電路器件上的集成電路(IC)。存儲(chǔ)器M(memory)
此圖例中只包括存儲(chǔ)地址寄存器(MAR)及可編程存儲(chǔ)器(實(shí)際還包括了地址譯碼功能),這就是微型計(jì)算機(jī)的“內(nèi)存”。實(shí)際的“內(nèi)存”要包括更多的內(nèi)容(如ROM,RAM及EPROM等)和更大的存儲(chǔ)容量。輸入及輸出接口(I/O)
是計(jì)算機(jī)實(shí)行人機(jī)對(duì)話的重要部件。實(shí)際微型計(jì)算機(jī)的輸入設(shè)備多為鍵盤,輸出則為監(jiān)視器(即電視屏顯示器),因而必須有專用的輸出接口電路。模型機(jī)的硬件結(jié)構(gòu)8中央處理器(centralprocess3.2指令系統(tǒng)指令系統(tǒng)就是用來編制計(jì)算程序的一個(gè)指令集合微型機(jī)有5條指令LDA——將數(shù)據(jù)裝入累加器A;ADD——進(jìn)行加法運(yùn)算;SUB——進(jìn)行減法運(yùn)算;OUT——輸出結(jié)果;HLT——停機(jī)。不同型號(hào)的微處理機(jī)的指令系統(tǒng)是不同的,指令的條數(shù)也不相同。例如,Z80型的指令系統(tǒng)可達(dá)158條,M6800型有72條,6502型則有56條指令,而Intel80386則為152條。3.2指令系統(tǒng)指令系統(tǒng)就是用來編制計(jì)算程序的一個(gè)指令集合指令系統(tǒng)2例如一個(gè)計(jì)算程序的格式如下:助記符操作數(shù)注釋LDA
R9;把R9中的數(shù)據(jù)存入AADD
RA;把RA中的數(shù)據(jù)與A的相加ADD
RB;把RB中的數(shù)據(jù)與A的相加ADD
RC;把RC中的數(shù)據(jù)與A的相加SUB
RD;把A中的數(shù)據(jù)與RD的相減OUT;輸出A中的數(shù)據(jù),即結(jié)果HLT;停機(jī)指令系統(tǒng)2例如一個(gè)計(jì)算程序的格式如下:指令系統(tǒng)3指令執(zhí)行結(jié)果(A)=(R9)+(RA)+(RB)+(RC)-(RD)(D)=(A)加括號(hào)的意義是指被括上的寄存器或存儲(chǔ)單元的內(nèi)容。如(A)是指累加器A中的內(nèi)容,(D)是指顯示器顯示出的數(shù)據(jù),(R9)是存儲(chǔ)單元R9中的數(shù)據(jù),等等。((MAR))呢?HLT指令,使時(shí)鐘脈沖停發(fā),計(jì)算機(jī)停止運(yùn)行,但電源未切斷,顯示器仍繼續(xù)顯示計(jì)算結(jié)果指令系統(tǒng)3指令執(zhí)行結(jié)果(A)=(R9)+(RA)+(RB)+3.3程序設(shè)計(jì)程序設(shè)計(jì)中要包括:(1)編制匯編語言寫的程序;(2)助記符的翻譯;(3)存儲(chǔ)器的分配。指令清單是程序設(shè)計(jì)的重要步驟上面講的微型計(jì)算機(jī)并不認(rèn)識(shí)助記符的意義,因此必須將指令清單中每一條指令都翻譯成二進(jìn)制碼——機(jī)器碼。存儲(chǔ)器中既要寫入計(jì)算程序,也要存放參與運(yùn)算的數(shù)據(jù),因此,需要決定存儲(chǔ)器中的存儲(chǔ)單元應(yīng)如何分配,這稱為存儲(chǔ)空間分配。3.3程序設(shè)計(jì)程序設(shè)計(jì)中要包括:程序設(shè)計(jì)23.3.1操作碼表
這是由計(jì)算機(jī)制造廠提供的翻譯表,它是每個(gè)助記符與二進(jìn)制碼的相應(yīng)對(duì)照表。由于我們的計(jì)算機(jī)很簡(jiǎn)單,只有5個(gè)助記符,列成對(duì)照表助記符操作碼LDA0000ADD0001SUB0010OUT1110HLT11113.3.2存儲(chǔ)器分配在本微型機(jī)中就是要把PROM中的16個(gè)存儲(chǔ)單元分配成兩個(gè)區(qū):程序存放區(qū)(指令區(qū))和數(shù)據(jù)存放區(qū)(數(shù)據(jù)區(qū))。指令區(qū)數(shù)據(jù)區(qū)存儲(chǔ)單元R0~R7R8~RF二進(jìn)制地址0000~01111000~1111程序設(shè)計(jì)23.3.1操作碼表
這是由計(jì)算機(jī)制造廠提供的源程序目的程序存儲(chǔ)單元指LDA
R9
→00001001
0000(R0)
ADD
RA
→00011010
0001(R1)令A(yù)DD
RB
→00011011
0010(R2)
ADD
RC
→00011100
0011(R3)區(qū)SUB
RD
→00101101
0100(R4)
OUT
→1110××××
0101(R5)
HLT
→1111××××
0110(R6)
數(shù)1610→00010000
1001(R9)
2010→00010100
1010(RA)據(jù)2410→00011000
1011(RB)
2810→00011100
1100(RC)區(qū)3210→00100000
1101(RD)3.3.3將源程序翻譯成目的程序根據(jù)助記符與二進(jìn)制的對(duì)照表(操作碼表)將上節(jié)例題中的每條指令的助記符譯成二進(jìn)制碼,并將存儲(chǔ)單元符號(hào)寫成地址碼(即R0→0000,R1→0001,…,R9→1001)源程序目的程序存儲(chǔ)單元3.33.3.4程序及數(shù)據(jù)的輸入方法3.3.4程序及數(shù)據(jù)的輸入方法程序及數(shù)據(jù)的輸入方法2PROM分成兩區(qū),指令區(qū)一旦存入指令,就不許再改(除非要計(jì)算的公式改變了)。數(shù)據(jù)區(qū)是可以隨時(shí)存入要參與運(yùn)算的數(shù)據(jù),并在計(jì)算過程中可以取出來將PROM的每個(gè)數(shù)據(jù)位的開關(guān)撥向置0或置1的位置輸入在前面例題的計(jì)算程序設(shè)計(jì)好,并輸入至PROM之后,就可以開始執(zhí)行程序了。程序執(zhí)行的第一步必須先使計(jì)算機(jī)復(fù)位,此時(shí)控制器先發(fā)出一個(gè)CLR為高電位的脈沖,同時(shí)時(shí)鐘脈沖開始工作,即發(fā)出脈沖電壓系列到各個(gè)部件去。 執(zhí)行LDA
9H后A=0001
0000[16(10)]執(zhí)行ADD
AH后A=0010
0100[36(10)]執(zhí)行ADD
BH后A=0011
1100[60(10)]執(zhí)行ADD
CH后A=0101
1000[88(10)]執(zhí)行SUB
DH后A=0011
1000[56(10)]執(zhí)行OUT后D=00111000[56(10)]執(zhí)行HLT后D=0011
1000(不變)程序及數(shù)據(jù)的輸入方法2PROM分成兩區(qū),指令區(qū)一旦存入指令,3.4執(zhí)行指令的例行程序在程序和數(shù)據(jù)裝入之后,啟動(dòng)按鈕將啟動(dòng)信號(hào)傳給控制部件CON,然后控制部件產(chǎn)生控制字,以便取出和執(zhí)行每條指令。一個(gè)機(jī)器周期為執(zhí)行一條指令的時(shí)間。機(jī)器周期又可分為取指周期和執(zhí)行周期。取指過程和執(zhí)行過程機(jī)器都得通過不同的機(jī)器節(jié)拍。在這些節(jié)拍內(nèi),每個(gè)寄存器(PC,MAR,IR,A,B,O等)的內(nèi)容可能發(fā)生變化。3.4執(zhí)行指令的例行程序在程序和數(shù)據(jù)裝入之后,啟動(dòng)按鈕將執(zhí)行指令的例行程序2環(huán)形計(jì)數(shù)器及機(jī)器節(jié)拍各位輸出端Q0~Q5的電位就是機(jī)器節(jié)拍T0~T5的電位,由于時(shí)鐘脈沖是經(jīng)過反相器再接到環(huán)形計(jì)數(shù)器(圖中的“汽泡”表示非門)的CLK端的,所以各節(jié)拍之間的轉(zhuǎn)換是在時(shí)鐘脈沖的負(fù)邊緣開始的。環(huán)形計(jì)數(shù)器的輸出看做是一個(gè)字T,則:T=T5T4T3T2T1T0下圖是一個(gè)6位的環(huán)形字,用以控制6條電路,使它們依次輪流為高電位,T0,T1,T2,T3,T4和T5稱為機(jī)器節(jié)拍。執(zhí)行指令的例行程序2環(huán)形計(jì)數(shù)器及機(jī)器節(jié)拍執(zhí)行指令的例行程序3取指周期取出指令的過程需要3個(gè)機(jī)器節(jié)拍,在清零和啟動(dòng)之后第1個(gè)節(jié)拍為T0。取指周期,對(duì)任何一條指令都是一樣的。因?yàn)槿魏我粭l指令都是沿著這個(gè)程式而將指令取出來,再將其高4位送入控制部件去進(jìn)行分析,決定下面應(yīng)如何執(zhí)行(1)地址節(jié)拍(T0=1)在T0=1時(shí),應(yīng)將PC的內(nèi)容(即第1個(gè)地址碼)送入MAR(并通過MAR而達(dá)到PROM),所以,此時(shí)應(yīng)有:
EP=1,即PC準(zhǔn)備放出數(shù)據(jù)
LM=1,即MAR準(zhǔn)備接收數(shù)據(jù)(2)儲(chǔ)存節(jié)拍(T1=1)在T1=1時(shí),應(yīng)將PROM中由PC送來的地址碼所指定的存儲(chǔ)單元中的內(nèi)容送到IR,同時(shí)IR立即將其高4位送至控制部件。因此,在此節(jié)拍到來之前,即應(yīng)準(zhǔn)備好:
ER=1即PROM準(zhǔn)備放出數(shù)據(jù)
LI=1即IR準(zhǔn)備接收數(shù)據(jù)(3)增量節(jié)拍(T2=1)在T2=1時(shí),應(yīng)使PC加1,做好下一條指令的取指準(zhǔn)備。因此,CP=1,即命令PC計(jì)數(shù)。執(zhí)行指令的例行程序3取指周期取出指令的過程需要3個(gè)機(jī)器節(jié)拍,執(zhí)行指令的例行程序4執(zhí)行周期也需要3拍(T3,T4,T5),這種程序是由廠家編好了的,所以稱為例行程序。以LDA例行程序?yàn)槔?,考查一下在?節(jié)拍中,各個(gè)寄存器的內(nèi)容應(yīng)有何變化(4)T3=1時(shí),IR已將從PROM來的指令碼的高4位送至控制部件進(jìn)行分析。此高4位是與LDA相應(yīng)的二進(jìn)制碼“0000”,控制部件經(jīng)過分析后就發(fā)出命令:EI=1,將IR的低4位送至W總線;LM=1,MAR接收此低4位數(shù)作為地址并立即送至PROM;例題中,送至PROM的地址就是R9的二進(jìn)制碼地址(1001)。也就是說,第1次訪問PROM的是其指令區(qū),第2次訪問的是其數(shù)據(jù)區(qū)。(5)T4=1應(yīng)將PROM的數(shù)據(jù)區(qū)的存儲(chǔ)單元(如R9,即1001)的內(nèi)容送入累加器A,即:ER=1,PROM準(zhǔn)備放出數(shù)據(jù);LA=1,A準(zhǔn)備接收數(shù)據(jù);(6)T5=1因?yàn)門4=1時(shí),已將數(shù)據(jù)存放入A中,所以,LDA的例行程序就已完成,T5節(jié)拍就變成空拍執(zhí)行指令的例行程序4執(zhí)行周期也需要3拍(T3,T4,T5),3.5控制部件
控制部件是使計(jì)算機(jī)能夠成為自動(dòng)機(jī)的關(guān)鍵部件。它包括下列主要部件:環(huán)形計(jì)數(shù)器(RC);指令譯碼器(ID);控制矩陣(CM);其他控制電路。環(huán)形計(jì)數(shù)器、指令譯碼器、控制矩陣稱為控制器。3.5控制部件
3.5.1指令譯碼器指令寄存器IR高4位被送入控制部件這高4位就是各種控制動(dòng)作的代碼,比如:0000代表LDA的控制動(dòng)作;0001代表ADD的控制動(dòng)作;0010代表SUB的控制動(dòng)作;1110代表OUT的控制動(dòng)作;1111代表HLT的控制動(dòng)作。一個(gè)控制動(dòng)作相當(dāng)于一條控制線,就要使該控制線為高電位。這個(gè)由4個(gè)位組成的編碼,必須被譯成一個(gè)信號(hào),即譯為某一控制線為高電位,這就是譯碼器的任務(wù)。譯碼器可以由與門和非門組成,下圖就是一個(gè)4位譯碼器。4位應(yīng)該可以有16種編碼的可能,由于我們的模擬機(jī)功能簡(jiǎn)單,只有5條指令,所以只要5個(gè)與門就夠了。3.5.1指令譯碼器指令寄存器IR高4位被送入控制部件微機(jī)原理第三章課件3.5.2控制矩陣控制矩陣就是要決定控制字的輸出電平高低一般每一節(jié)拍大都要求兩個(gè)控制字位為高電位,有的可能只有一位為高電位的(如
CP=1),也可能是3位為高電位??刂凭仃囀强刂撇考暮诵牟考聢D是一個(gè)控制矩陣(CM)電路圖控制字有12位,每一指令要執(zhí)行6拍,每拍均有不同的位為高電位,下圖是本模型機(jī)中控制矩陣的電路圖:3.5.2控制矩陣控制矩陣就是要決定控制字的輸出電平高低控制矩陣控制矩陣控制矩陣2電路組成環(huán)形計(jì)數(shù)器,使T0至T5的6根橫線輪流為高電位;指令控制信號(hào)線為中間4根橫線,它們的電位高低由指令譯碼器決定控制字輸出CON,最下面部分是由19個(gè)與門和6個(gè)或門組成一個(gè)邏輯電路。這個(gè)電路共有12個(gè)輸出端,就是控制字CON:CON=CPEPIMERLIEILAEASUEULBLO
控制矩陣的初始化開機(jī)前使CLR為高電位,則此時(shí)環(huán)形計(jì)數(shù)器復(fù)位至T0=1,其他各位為0。這就是說,每一節(jié)拍都是從T0開始的??刂凭仃?電路組成3.5.3其他控制電路時(shí)鐘脈沖發(fā)生器,包括時(shí)鐘振蕩器及射極跟隨器,輸出CLK運(yùn)行/停車觸發(fā)器,其輸出去啟動(dòng)時(shí)鐘振蕩器“啟動(dòng)”和“清除”按鈕,由人直接操作的主令電器,命令都是由此開始的3.5.3其他控制電路時(shí)鐘脈沖發(fā)生器,包括時(shí)鐘振蕩器及射
3.6微型計(jì)算機(jī)功能的擴(kuò)展模型機(jī)的不足硬件過于簡(jiǎn)單,尤其是控制部件只能接受5條指令而產(chǎn)生相應(yīng)的例行程序。軟件開發(fā)問題,即如何利用現(xiàn)有的指令系統(tǒng),經(jīng)過靈活的編程以解決更多更復(fù)雜的問題。擴(kuò)展模型機(jī)的功能中央處理器控制器算術(shù)邏輯部件(ALU)寄存器的個(gè)數(shù)、性能等
3.6微型計(jì)算機(jī)功能的擴(kuò)展模型機(jī)的不足算術(shù)邏輯部件及控制器的功能有相當(dāng)?shù)臄U(kuò)展,這樣,就既可能進(jìn)行邏輯運(yùn)算,也有跳轉(zhuǎn)和循環(huán)運(yùn)算的功能??刂破鞯脑鰪?qiáng),指令系統(tǒng)已擴(kuò)大到28條指令增加的部件子程序計(jì)數(shù)器SC變址寄存器X隨機(jī)存取存儲(chǔ)器RAMMDR輸入寄存器算術(shù)邏輯部件及控制器的功能有相當(dāng)?shù)臄U(kuò)展,這樣,就既可能進(jìn)行邏微型計(jì)算機(jī)功能的擴(kuò)展5本機(jī)共有28條指令,可分為3類:1.訪問存儲(chǔ)器指令(memoryreferenceinstruction,
MRI)與存儲(chǔ)器的讀/寫有關(guān),其地址字段必須為8位(256個(gè)地址)。特點(diǎn):由指令寄存器分出來的地址字段(8位的地址字段)必定進(jìn)入MAR(存儲(chǔ)器地址寄存器),這就能夠識(shí)別出MRI這類指令。助記符操作碼操作數(shù)意義LDA0000nn將地址nn的內(nèi)容裝入AADD0001nn將地址nn的內(nèi)容與A相加SUB0010nn將地址nn的內(nèi)容與A相減STA0011nn將A中內(nèi)容存入地址nn中LDB0100nn將地址nn的內(nèi)容裝入BLDX0101nn將地址nn的內(nèi)容裝入X微型計(jì)算機(jī)功能的擴(kuò)展5本機(jī)共有28條指令,可分為3類:助記符微型計(jì)算機(jī)功能的擴(kuò)展62.轉(zhuǎn)移指令 可用以改變程序的順序,可以在規(guī)定的某種條件下將程序進(jìn)程向前轉(zhuǎn)移或向后轉(zhuǎn)移,也可跳過若干條指令語句或去執(zhí)行某個(gè)子程序之后再回至下一條指令語句。特點(diǎn):由指令寄存器IR分出來的地址段(8位)將進(jìn)入程序計(jì)數(shù)器PC(即LP=1),或子程序計(jì)數(shù)器(LS=1)。助記符操作碼操作數(shù)意義JMP0110nn無條件轉(zhuǎn)移至程序nnJAM0111nn(A)=負(fù)則轉(zhuǎn)移至程序nnJAZ1000nn(A)=0則轉(zhuǎn)移至程序nnJIM1001nn(X)=負(fù)則轉(zhuǎn)移至程序nnJIZ1010nn(X)=0則轉(zhuǎn)移至程序nnJMS1011起始地址轉(zhuǎn)至子程序的起始地址微型計(jì)算機(jī)功能的擴(kuò)展62.轉(zhuǎn)移指令助記符操作碼操作數(shù)意義微型計(jì)算機(jī)功能的擴(kuò)展73.邏輯運(yùn)算指令 控制器只要接到1111的高4位,即知為運(yùn)算指令,然后控制器再辨認(rèn)選擇碼以確定進(jìn)行什么樣的運(yùn)算。這類指令的特點(diǎn)是與存儲(chǔ)器及程序計(jì)數(shù)器都無關(guān),而是與ALU、A及B寄存器有關(guān)。由于這些運(yùn)算都是在ALU和A,B之間進(jìn)行的,所以不需地址碼。低4位可以不置數(shù),由其隨機(jī)存在,并不產(chǎn)生任何影響。微型計(jì)算機(jī)功能的擴(kuò)展73.邏輯運(yùn)算指令微型計(jì)算機(jī)功能的擴(kuò)展8助記符操作碼選擇碼低4位意義NOP11110000隨意空操作CLA11110001累加器A清零XCH11110010累加器A與變址器X內(nèi)容交換DEX11110011變址器X內(nèi)容減1INX11110100變址器X內(nèi)容加1CMA11110101累加器A內(nèi)容取反CMB11110110累加器B內(nèi)容取反LOR11110111A和B各位進(jìn)行或運(yùn)算AND11111000A和B各位進(jìn)行與運(yùn)算NOR11111001A和B各位進(jìn)行或非運(yùn)算NAN11111010A和B各位進(jìn)行與非運(yùn)算XOR11111011A和B各位進(jìn)行異或運(yùn)算BRB11111100由子程序返回主程序INP11111101輸入:外部數(shù)據(jù)裝入I再裝入AOUT11111110輸出:A的內(nèi)容裝入OHLT11111111停機(jī):CLK停發(fā)微型計(jì)算機(jī)功能的擴(kuò)展8助記符操作碼選擇碼低4位意義NOP113.7初級(jí)程序設(shè)計(jì)舉例利用上節(jié)提供的指令系統(tǒng),可以據(jù)此進(jìn)行程序設(shè)計(jì)。初級(jí)程序主要包括下列的程序模式:簡(jiǎn)單程序——程序一統(tǒng)到底,中間沒有任何分支和跳轉(zhuǎn)。分支程序——程序進(jìn)行中,根據(jù)判斷程序執(zhí)行的不同結(jié)果而分別跳轉(zhuǎn)至其他子程序去。循環(huán)程序——程序進(jìn)行過程中,在某一循環(huán)體進(jìn)行若干次循環(huán)運(yùn)行,然后再繼續(xù)前進(jìn)。調(diào)用子程序——程序進(jìn)行至某一階段,調(diào)用存儲(chǔ)于某存儲(chǔ)區(qū)中的某個(gè)子程序,然后返回至主程序繼續(xù)運(yùn)行下去。3.7初級(jí)程序設(shè)計(jì)舉例利用上節(jié)提供的指令系統(tǒng),可以據(jù)此初級(jí)程序設(shè)計(jì)舉例2【例3.1】分支程序指R0
LDA
6H
令R1
SUB
7H
區(qū)R2
JAM
5H
R3
JAZ
5H
R4
JMP
1H
R5
HLT數(shù)R6
25(10)據(jù)區(qū)R7
9(10)根據(jù)程序清單,分析程序執(zhí)行的順序及結(jié)果A<--(6H)A<-(A)-(7H)(A)<0開始(A)=0HLTYYNN初級(jí)程序設(shè)計(jì)舉例2【例3.1】分支程序A<--(6H)A<-初級(jí)程序設(shè)計(jì)舉例4【例3.2】循環(huán)程序 利用變址寄存器可以設(shè)計(jì)一個(gè)循環(huán)程序:R0
LDX
5H
R1
DEX
R2
JIZ
4H
R3
JMP
1H
R4
HLT停機(jī)R5
3(10)
分析程序運(yùn)行的過程X<--(R5)X<-(X)-1(X)=0開始HLTYN初級(jí)程序設(shè)計(jì)舉例4【例3.2】循環(huán)程序X<--(R5)X<-初級(jí)程序設(shè)計(jì)舉例6【例3.3】乘法計(jì)算的程序利用循環(huán)程序可作乘法計(jì)算,例如要求12(10)×8(10),就是要求將12(10)連加8次。這就可以利用循環(huán)程序,讓它進(jìn)行8次循環(huán)。程序如下:
R0
NOP
R1
LDX
AH
R2
CLA
R3
DEX
R4
ADD
9H
7次返回
R5
JIZ
7H
R6
JMP
3H
R7
OUT轉(zhuǎn)出循環(huán)R8
HLT
R9
12(10)
RA
8(10)X<--(AH)A<-0X<-(X)-1(X)=0開始OUTYNA<-(A)+(9H)OUTOUTHLT初級(jí)程序設(shè)計(jì)舉例6【例3.3】乘法計(jì)算的程序X<--(AH)初級(jí)程序設(shè)計(jì)舉例7【例3.4】邏輯運(yùn)算的例子設(shè)計(jì)一個(gè)程序,用以測(cè)試某個(gè)來自接口電路的輸入數(shù)I0(12位),以確定該數(shù)是否為奇數(shù)。如I0為奇數(shù)(即最后一位為1),則顯示一個(gè)11111111
1111;如I0是偶數(shù)(最后一位為0),則顯示一個(gè)0000
0000
0000。程序清單如下:R0
INP;將I0裝入累加器A
R1
LDB
9H;將(R9)裝入寄存器B
R2
AND;將(B)與(A)進(jìn)行“與”運(yùn)算R3
JAZ
6H;(A)=0,則轉(zhuǎn)移至R6
R4
LDA
AH;將(RA)裝入累加器A
R5
JMP
7H;無條件轉(zhuǎn)至R7
R6
LDA
BH;將(RB)裝入累加器A
R7
OUT;輸出(A)至顯示器R8
HLT;停機(jī)R9
0000
0000
0001
(掩碼)
RA
1111
1111
1111奇數(shù)標(biāo)志RB
0000
0000
0000偶數(shù)標(biāo)志初級(jí)程序設(shè)計(jì)舉例7【例3.4】邏輯運(yùn)算的例子初級(jí)程序設(shè)計(jì)舉例8【例3.5】子程序設(shè)計(jì) 設(shè)計(jì)一個(gè)計(jì)算x2+y2+z2=?的計(jì)算程序。由于x2,y2和z2在形式上都是一樣的,是求一個(gè)數(shù)的平方值,可將x2做成一個(gè)子程序而存于存儲(chǔ)器中一個(gè)固定的區(qū)域中,用到時(shí),即可將其調(diào)出使用。將此子程序存于以RF2為起始地址(其地址為F2H,即11110010的存儲(chǔ)單元)的一個(gè)區(qū)域中,則可設(shè)計(jì)其程序如下:
RF2
STA
CAH;將(A)暫存于RCA
RF3
LDX
CAH;將(RCA)裝入X
RF4
CLA;累加器A清零循環(huán)程序
RF5
DEX;(X)減1循環(huán)體
RF6
ADD
CAH
;將(RCA)與(A)相加x個(gè)x相加的過程
RF7
JIZ
F9H;(X)=0,則轉(zhuǎn)移到RF9
RF8
JMP
F5H;無條件轉(zhuǎn)移至RF5
RF9
BRB;返回主程序RC6
RC6
x
RC7
y;被運(yùn)算的數(shù)據(jù)
RC8
z
RC9
RCA;運(yùn)算過程暫存地址
初級(jí)程序設(shè)計(jì)舉例8【例3.5】子程序設(shè)計(jì)3.8控制部件的擴(kuò)展3.8控制部件的擴(kuò)展以LDA指令為例,該指令的操作碼(0000),如有一個(gè)操作數(shù)為nn(8位),則形成的指令為LDAnn。設(shè)此指令存于RAM的指令區(qū)的第一個(gè)存儲(chǔ)單元(其地址為00000000),nn是指參與運(yùn)算的數(shù)據(jù)在RAM的數(shù)據(jù)區(qū)中所在的存儲(chǔ)單元的地址(n代表一個(gè)4位二進(jìn)制數(shù)),如下圖所示:以LDA指令為例,該指令的操作碼(0000),如有一個(gè)操作數(shù)3.9現(xiàn)代技術(shù)在微型計(jì)算機(jī)中的應(yīng)用16微型計(jì)算機(jī)與8位微型機(jī)相比的優(yōu)點(diǎn)更多的寄存器存儲(chǔ)器尋址范圍增加更大的指令系統(tǒng)更高的速度新型體系結(jié)構(gòu)存儲(chǔ)器管理的改進(jìn)3.9現(xiàn)代技術(shù)在微型計(jì)算機(jī)中的應(yīng)用16微型計(jì)算機(jī)與8位一般微計(jì)算機(jī)的組成、位(Bit)、字(Word)、字節(jié)(Byte)、中央處理單元(CPU)等名詞術(shù)語。模型機(jī)的簡(jiǎn)化電路、指令系統(tǒng)和程序設(shè)計(jì)。微型機(jī)的控制部件的結(jié)構(gòu)。模型機(jī)的功能擴(kuò)展?,F(xiàn)代技術(shù)在微型機(jī)中的應(yīng)用。本章小結(jié)本章小結(jié)課后作業(yè):
P70:3.23.33.63.83.12
思考題練習(xí):概念:命令字、例行程序、機(jī)器周期、取指周期、執(zhí)行周期在微型計(jì)算機(jī)的簡(jiǎn)化形式中,環(huán)形計(jì)數(shù)器用于產(chǎn)生機(jī)器節(jié)拍,取出指令的過程需要T0、T1和T2三個(gè)節(jié)拍,T0稱為_____節(jié)拍,T1稱為儲(chǔ)存節(jié)拍,T2稱為_______節(jié)拍。舉例說明模型機(jī)中用到了那些寄存器,并說明每種寄存器的作用。課后作業(yè):思考題練習(xí):參考文獻(xiàn)鄭學(xué)堅(jiān),周斌.微型計(jì)算機(jī)原理及應(yīng)用(第三版).北京:清華大學(xué)出版社,2001姚燕南,薛鈞義.微型計(jì)算機(jī)原理.西安:西安電子科技大學(xué)出版社,1994鄒逢興.微型計(jì)算機(jī)接口原理與技術(shù).長沙:國防科技大學(xué)出版社,1993幸云輝.16位微型計(jì)算機(jī)原理與應(yīng)用.北京:北京郵電學(xué)院出版社,1991張鈞良.計(jì)算機(jī)組成原理.北京:清華大學(xué)出版社,2003JohnDCarpinelli.李仁發(fā),彭曼曼譯.計(jì)算機(jī)系統(tǒng)組成與體系結(jié)構(gòu).北京:人民郵電出版社,2003參考文獻(xiàn)鄭學(xué)堅(jiān),周斌.微型計(jì)算機(jī)原理及應(yīng)用(第三版).北本章結(jié)束
謝謝!本章結(jié)束
謝謝!第3章微型計(jì)算機(jī)的基本工作原理第3章微型計(jì)算機(jī)的基本工作原理本章教學(xué)目的本章以一個(gè)簡(jiǎn)化了的計(jì)算機(jī)作為分析對(duì)象,逐步講述一般計(jì)算機(jī)的各種基本功能,從而概括出微型計(jì)算機(jī)的基本工作原理。本章教學(xué)目的本章以一個(gè)簡(jiǎn)化了的計(jì)算機(jī)作為分析對(duì)象,逐步講述一本章學(xué)習(xí)要求1.掌握模型機(jī)的簡(jiǎn)化形式;模型機(jī)各部件的功能與作用;基于模型機(jī)的編程過程。位(Bit)、字(Word)、字節(jié)(Byte)、中央處理單元(CPU)等名詞術(shù)語。
2.理解指令的意義;指令周期;控制字的含義。
3.了解程序設(shè)計(jì)步驟;控制部件的構(gòu)成及其工作原理,模型機(jī)的功能擴(kuò)展,現(xiàn)代技術(shù)在微型集中的應(yīng)用。
本章學(xué)習(xí)要求1.掌握2.理解3.了解本章主要外語詞匯PROM:ProgrammableReadOnlyMemory,可編程只讀存儲(chǔ)器CM:ControlMatrix,控制矩陣Bit:位Byte:字節(jié)Word:字本章主要外語詞匯PROM:ProgrammableRea主要內(nèi)容微型計(jì)算機(jī)結(jié)構(gòu)的簡(jiǎn)化形式指令系統(tǒng)控制部件程序設(shè)計(jì)及執(zhí)行指令的例行程序微機(jī)功能擴(kuò)展初級(jí)程序設(shè)計(jì)舉例現(xiàn)代技術(shù)在微機(jī)中的應(yīng)用主要內(nèi)容微型計(jì)算機(jī)結(jié)構(gòu)的簡(jiǎn)化形式3.1微型計(jì)算機(jī)結(jié)構(gòu)的簡(jiǎn)化形式微型計(jì)算機(jī)的基本功能能運(yùn)算、能判別及能決策;速度快模型機(jī)簡(jiǎn)化了的微型計(jì)算機(jī)可以根據(jù)模型機(jī)理解各個(gè)基本電路和部件之間的信息流通過程,指令系統(tǒng)的意義,程序設(shè)計(jì)的步驟,控制部件的功能及其結(jié)構(gòu),還有控制矩陣產(chǎn)生控制字的過程等等3.1微型計(jì)算機(jī)結(jié)構(gòu)的簡(jiǎn)化形式微型計(jì)算機(jī)的基本功能模型機(jī)的結(jié)構(gòu)特點(diǎn)
功能簡(jiǎn)單:只能做兩個(gè)數(shù)的加減法。
內(nèi)存量小:只有一個(gè)16×8PROM(可編程序只讀存儲(chǔ)器)。
字長8位:二進(jìn)制8位顯示。
手動(dòng)輸入:用撥動(dòng)開關(guān)輸入程序和數(shù)據(jù)模型機(jī)的結(jié)構(gòu)特點(diǎn)功能簡(jiǎn)單:只能做兩個(gè)數(shù)的加減法。模型機(jī)的硬件結(jié)構(gòu)1模型機(jī)的硬件結(jié)構(gòu)1模型機(jī)的硬件結(jié)構(gòu)21.程序計(jì)數(shù)器PC計(jì)數(shù)范圍由0000~1111(0~F)。每次運(yùn)行之前,先復(fù)位至0000。當(dāng)取出一條指令后,PC應(yīng)加1。2.存儲(chǔ)地址寄存器MAR接收來自PC的二進(jìn)制程序號(hào),作為地址碼送至PROM去。模型機(jī)的硬件結(jié)構(gòu)21.程序計(jì)數(shù)器PC模型機(jī)的硬件結(jié)構(gòu)3可編程序只讀存儲(chǔ)器PROM可編程序ROM,每條橫線與豎線都有一條由開關(guān)和二極管串聯(lián)的電路將它們連接起來。因此,只要撥動(dòng)開關(guān),即可使該數(shù)據(jù)位置1或置0PROM同時(shí)具有RAM和ROM功能。右圖是4×4PROM的電路圖16×8PROM的橫線應(yīng)為16條(R0~R15),豎線為8條(D7D6…D0),地址碼線應(yīng)為4條(A3A2A1A0)模型機(jī)的硬件結(jié)構(gòu)3可編程序只讀存儲(chǔ)器PROM模型機(jī)的硬件結(jié)構(gòu)44.指令寄存器IRIR從PROM接收指令字(當(dāng)LI=1,ER=1),同時(shí)將指令字分送到控制部件CON和W總線上去。指令字是8位的:××××
××××
MSB
LSB左4位為最高有效位(高4位),稱為指令字段;右4位為最低有效位(低4位),稱為地址字段。5.控制部件CON(1)每次運(yùn)行前,CON先發(fā)出CLR=1,使有關(guān)的部件清0。此時(shí):
PC=0000
IR=0000
0000(2)CON能發(fā)出同步脈沖CLK到各個(gè)部件去,使它們同步運(yùn)行。(3)在CON中有控制矩陣CM,能根據(jù)IR送來的指令發(fā)出12位的控制字:
CON=CPEPLMERLIEILAEASUEULBLO根據(jù)控制字中各位的置1或置0情況,計(jì)算機(jī)就能自動(dòng)地按指令程序運(yùn)行模型機(jī)的硬件結(jié)構(gòu)44.指令寄存器IR模型機(jī)的硬件結(jié)構(gòu)56.累加器A用以儲(chǔ)存計(jì)算機(jī)運(yùn)行期間的中間結(jié)果。它能接收W總線送來的數(shù)據(jù)(LA=1),也能將數(shù)據(jù)送到W總線上去(EA=1)。它還有一個(gè)數(shù)據(jù)輸出端,將數(shù)據(jù)送至ALU去進(jìn)行算術(shù)運(yùn)算。這個(gè)輸出是雙態(tài)的,即是立即地送去,而不受E門的控制。7.算術(shù)邏輯部件ALU它只是一個(gè)二進(jìn)制補(bǔ)碼加法器/減法器(參見圖1.9)。當(dāng)SU=0,ALU,進(jìn)行加法A+B;當(dāng)SU=1,ALU,進(jìn)行減法A-B,即(A+B′)。8.寄存器B將要與A相加減的數(shù)據(jù)暫存于此寄存器。它到ALU的輸出也是雙態(tài)的,即無E門控制。模型機(jī)的硬件結(jié)構(gòu)56.累加器A模型機(jī)的硬件結(jié)構(gòu)69.輸出寄存器O計(jì)算機(jī)運(yùn)行結(jié)束時(shí),累加器A中存有答案。如要輸出此答案,就得送入O。此時(shí)EA=1,LO=1,則O=A。典型的計(jì)算機(jī)具有若干個(gè)輸出寄存器,稱為輸出接口電路。這樣就可以驅(qū)動(dòng)不同的外圍設(shè)備,如打印機(jī)、顯示器等。10.二進(jìn)制顯示器D這是用發(fā)光二極管(LED)組成的顯示器。每一個(gè)LED接到寄存器O的一位上去。當(dāng)某位為高電位時(shí),則該LED發(fā)光。因?yàn)榧拇嫫鱋是8位的,所以這里也由8個(gè)LED組成顯示器。模型機(jī)的硬件結(jié)構(gòu)69.輸出寄存器O模型機(jī)的硬件結(jié)構(gòu)7總體來說,模型機(jī)可以如下劃分中央處理器CPU(包括PC,IR,CON,ALU,A及B);記憶裝置M(MAR及PROM);輸入/輸出I/O接口(包括O及D)模型機(jī)的硬件結(jié)構(gòu)7總體來說,模型機(jī)可以如下劃分模型機(jī)的硬件結(jié)構(gòu)8中央處理器(centralprocessingunit,
CPU)將程序計(jì)數(shù)功能(PC)、指令寄存功能(IR)、控制功能(CON)、算術(shù)邏輯功能(ALU)以及暫存中間數(shù)據(jù)功能(A及B)集成在一塊電路器件上的集成電路(IC)。存儲(chǔ)器M(memory)
此圖例中只包括存儲(chǔ)地址寄存器(MAR)及可編程存儲(chǔ)器(實(shí)際還包括了地址譯碼功能),這就是微型計(jì)算機(jī)的“內(nèi)存”。實(shí)際的“內(nèi)存”要包括更多的內(nèi)容(如ROM,RAM及EPROM等)和更大的存儲(chǔ)容量。輸入及輸出接口(I/O)
是計(jì)算機(jī)實(shí)行人機(jī)對(duì)話的重要部件。實(shí)際微型計(jì)算機(jī)的輸入設(shè)備多為鍵盤,輸出則為監(jiān)視器(即電視屏顯示器),因而必須有專用的輸出接口電路。模型機(jī)的硬件結(jié)構(gòu)8中央處理器(centralprocess3.2指令系統(tǒng)指令系統(tǒng)就是用來編制計(jì)算程序的一個(gè)指令集合微型機(jī)有5條指令LDA——將數(shù)據(jù)裝入累加器A;ADD——進(jìn)行加法運(yùn)算;SUB——進(jìn)行減法運(yùn)算;OUT——輸出結(jié)果;HLT——停機(jī)。不同型號(hào)的微處理機(jī)的指令系統(tǒng)是不同的,指令的條數(shù)也不相同。例如,Z80型的指令系統(tǒng)可達(dá)158條,M6800型有72條,6502型則有56條指令,而Intel80386則為152條。3.2指令系統(tǒng)指令系統(tǒng)就是用來編制計(jì)算程序的一個(gè)指令集合指令系統(tǒng)2例如一個(gè)計(jì)算程序的格式如下:助記符操作數(shù)注釋LDA
R9;把R9中的數(shù)據(jù)存入AADD
RA;把RA中的數(shù)據(jù)與A的相加ADD
RB;把RB中的數(shù)據(jù)與A的相加ADD
RC;把RC中的數(shù)據(jù)與A的相加SUB
RD;把A中的數(shù)據(jù)與RD的相減OUT;輸出A中的數(shù)據(jù),即結(jié)果HLT;停機(jī)指令系統(tǒng)2例如一個(gè)計(jì)算程序的格式如下:指令系統(tǒng)3指令執(zhí)行結(jié)果(A)=(R9)+(RA)+(RB)+(RC)-(RD)(D)=(A)加括號(hào)的意義是指被括上的寄存器或存儲(chǔ)單元的內(nèi)容。如(A)是指累加器A中的內(nèi)容,(D)是指顯示器顯示出的數(shù)據(jù),(R9)是存儲(chǔ)單元R9中的數(shù)據(jù),等等。((MAR))呢?HLT指令,使時(shí)鐘脈沖停發(fā),計(jì)算機(jī)停止運(yùn)行,但電源未切斷,顯示器仍繼續(xù)顯示計(jì)算結(jié)果指令系統(tǒng)3指令執(zhí)行結(jié)果(A)=(R9)+(RA)+(RB)+3.3程序設(shè)計(jì)程序設(shè)計(jì)中要包括:(1)編制匯編語言寫的程序;(2)助記符的翻譯;(3)存儲(chǔ)器的分配。指令清單是程序設(shè)計(jì)的重要步驟上面講的微型計(jì)算機(jī)并不認(rèn)識(shí)助記符的意義,因此必須將指令清單中每一條指令都翻譯成二進(jìn)制碼——機(jī)器碼。存儲(chǔ)器中既要寫入計(jì)算程序,也要存放參與運(yùn)算的數(shù)據(jù),因此,需要決定存儲(chǔ)器中的存儲(chǔ)單元應(yīng)如何分配,這稱為存儲(chǔ)空間分配。3.3程序設(shè)計(jì)程序設(shè)計(jì)中要包括:程序設(shè)計(jì)23.3.1操作碼表
這是由計(jì)算機(jī)制造廠提供的翻譯表,它是每個(gè)助記符與二進(jìn)制碼的相應(yīng)對(duì)照表。由于我們的計(jì)算機(jī)很簡(jiǎn)單,只有5個(gè)助記符,列成對(duì)照表助記符操作碼LDA0000ADD0001SUB0010OUT1110HLT11113.3.2存儲(chǔ)器分配在本微型機(jī)中就是要把PROM中的16個(gè)存儲(chǔ)單元分配成兩個(gè)區(qū):程序存放區(qū)(指令區(qū))和數(shù)據(jù)存放區(qū)(數(shù)據(jù)區(qū))。指令區(qū)數(shù)據(jù)區(qū)存儲(chǔ)單元R0~R7R8~RF二進(jìn)制地址0000~01111000~1111程序設(shè)計(jì)23.3.1操作碼表
這是由計(jì)算機(jī)制造廠提供的源程序目的程序存儲(chǔ)單元指LDA
R9
→00001001
0000(R0)
ADD
RA
→00011010
0001(R1)令A(yù)DD
RB
→00011011
0010(R2)
ADD
RC
→00011100
0011(R3)區(qū)SUB
RD
→00101101
0100(R4)
OUT
→1110××××
0101(R5)
HLT
→1111××××
0110(R6)
數(shù)1610→00010000
1001(R9)
2010→00010100
1010(RA)據(jù)2410→00011000
1011(RB)
2810→00011100
1100(RC)區(qū)3210→00100000
1101(RD)3.3.3將源程序翻譯成目的程序根據(jù)助記符與二進(jìn)制的對(duì)照表(操作碼表)將上節(jié)例題中的每條指令的助記符譯成二進(jìn)制碼,并將存儲(chǔ)單元符號(hào)寫成地址碼(即R0→0000,R1→0001,…,R9→1001)源程序目的程序存儲(chǔ)單元3.33.3.4程序及數(shù)據(jù)的輸入方法3.3.4程序及數(shù)據(jù)的輸入方法程序及數(shù)據(jù)的輸入方法2PROM分成兩區(qū),指令區(qū)一旦存入指令,就不許再改(除非要計(jì)算的公式改變了)。數(shù)據(jù)區(qū)是可以隨時(shí)存入要參與運(yùn)算的數(shù)據(jù),并在計(jì)算過程中可以取出來將PROM的每個(gè)數(shù)據(jù)位的開關(guān)撥向置0或置1的位置輸入在前面例題的計(jì)算程序設(shè)計(jì)好,并輸入至PROM之后,就可以開始執(zhí)行程序了。程序執(zhí)行的第一步必須先使計(jì)算機(jī)復(fù)位,此時(shí)控制器先發(fā)出一個(gè)CLR為高電位的脈沖,同時(shí)時(shí)鐘脈沖開始工作,即發(fā)出脈沖電壓系列到各個(gè)部件去。 執(zhí)行LDA
9H后A=0001
0000[16(10)]執(zhí)行ADD
AH后A=0010
0100[36(10)]執(zhí)行ADD
BH后A=0011
1100[60(10)]執(zhí)行ADD
CH后A=0101
1000[88(10)]執(zhí)行SUB
DH后A=0011
1000[56(10)]執(zhí)行OUT后D=00111000[56(10)]執(zhí)行HLT后D=0011
1000(不變)程序及數(shù)據(jù)的輸入方法2PROM分成兩區(qū),指令區(qū)一旦存入指令,3.4執(zhí)行指令的例行程序在程序和數(shù)據(jù)裝入之后,啟動(dòng)按鈕將啟動(dòng)信號(hào)傳給控制部件CON,然后控制部件產(chǎn)生控制字,以便取出和執(zhí)行每條指令。一個(gè)機(jī)器周期為執(zhí)行一條指令的時(shí)間。機(jī)器周期又可分為取指周期和執(zhí)行周期。取指過程和執(zhí)行過程機(jī)器都得通過不同的機(jī)器節(jié)拍。在這些節(jié)拍內(nèi),每個(gè)寄存器(PC,MAR,IR,A,B,O等)的內(nèi)容可能發(fā)生變化。3.4執(zhí)行指令的例行程序在程序和數(shù)據(jù)裝入之后,啟動(dòng)按鈕將執(zhí)行指令的例行程序2環(huán)形計(jì)數(shù)器及機(jī)器節(jié)拍各位輸出端Q0~Q5的電位就是機(jī)器節(jié)拍T0~T5的電位,由于時(shí)鐘脈沖是經(jīng)過反相器再接到環(huán)形計(jì)數(shù)器(圖中的“汽泡”表示非門)的CLK端的,所以各節(jié)拍之間的轉(zhuǎn)換是在時(shí)鐘脈沖的負(fù)邊緣開始的。環(huán)形計(jì)數(shù)器的輸出看做是一個(gè)字T,則:T=T5T4T3T2T1T0下圖是一個(gè)6位的環(huán)形字,用以控制6條電路,使它們依次輪流為高電位,T0,T1,T2,T3,T4和T5稱為機(jī)器節(jié)拍。執(zhí)行指令的例行程序2環(huán)形計(jì)數(shù)器及機(jī)器節(jié)拍執(zhí)行指令的例行程序3取指周期取出指令的過程需要3個(gè)機(jī)器節(jié)拍,在清零和啟動(dòng)之后第1個(gè)節(jié)拍為T0。取指周期,對(duì)任何一條指令都是一樣的。因?yàn)槿魏我粭l指令都是沿著這個(gè)程式而將指令取出來,再將其高4位送入控制部件去進(jìn)行分析,決定下面應(yīng)如何執(zhí)行(1)地址節(jié)拍(T0=1)在T0=1時(shí),應(yīng)將PC的內(nèi)容(即第1個(gè)地址碼)送入MAR(并通過MAR而達(dá)到PROM),所以,此時(shí)應(yīng)有:
EP=1,即PC準(zhǔn)備放出數(shù)據(jù)
LM=1,即MAR準(zhǔn)備接收數(shù)據(jù)(2)儲(chǔ)存節(jié)拍(T1=1)在T1=1時(shí),應(yīng)將PROM中由PC送來的地址碼所指定的存儲(chǔ)單元中的內(nèi)容送到IR,同時(shí)IR立即將其高4位送至控制部件。因此,在此節(jié)拍到來之前,即應(yīng)準(zhǔn)備好:
ER=1即PROM準(zhǔn)備放出數(shù)據(jù)
LI=1即IR準(zhǔn)備接收數(shù)據(jù)(3)增量節(jié)拍(T2=1)在T2=1時(shí),應(yīng)使PC加1,做好下一條指令的取指準(zhǔn)備。因此,CP=1,即命令PC計(jì)數(shù)。執(zhí)行指令的例行程序3取指周期取出指令的過程需要3個(gè)機(jī)器節(jié)拍,執(zhí)行指令的例行程序4執(zhí)行周期也需要3拍(T3,T4,T5),這種程序是由廠家編好了的,所以稱為例行程序。以LDA例行程序?yàn)槔?,考查一下在?節(jié)拍中,各個(gè)寄存器的內(nèi)容應(yīng)有何變化(4)T3=1時(shí),IR已將從PROM來的指令碼的高4位送至控制部件進(jìn)行分析。此高4位是與LDA相應(yīng)的二進(jìn)制碼“0000”,控制部件經(jīng)過分析后就發(fā)出命令:EI=1,將IR的低4位送至W總線;LM=1,MAR接收此低4位數(shù)作為地址并立即送至PROM;例題中,送至PROM的地址就是R9的二進(jìn)制碼地址(1001)。也就是說,第1次訪問PROM的是其指令區(qū),第2次訪問的是其數(shù)據(jù)區(qū)。(5)T4=1應(yīng)將PROM的數(shù)據(jù)區(qū)的存儲(chǔ)單元(如R9,即1001)的內(nèi)容送入累加器A,即:ER=1,PROM準(zhǔn)備放出數(shù)據(jù);LA=1,A準(zhǔn)備接收數(shù)據(jù);(6)T5=1因?yàn)門4=1時(shí),已將數(shù)據(jù)存放入A中,所以,LDA的例行程序就已完成,T5節(jié)拍就變成空拍執(zhí)行指令的例行程序4執(zhí)行周期也需要3拍(T3,T4,T5),3.5控制部件
控制部件是使計(jì)算機(jī)能夠成為自動(dòng)機(jī)的關(guān)鍵部件。它包括下列主要部件:環(huán)形計(jì)數(shù)器(RC);指令譯碼器(ID);控制矩陣(CM);其他控制電路。環(huán)形計(jì)數(shù)器、指令譯碼器、控制矩陣稱為控制器。3.5控制部件
3.5.1指令譯碼器指令寄存器IR高4位被送入控制部件這高4位就是各種控制動(dòng)作的代碼,比如:0000代表LDA的控制動(dòng)作;0001代表ADD的控制動(dòng)作;0010代表SUB的控制動(dòng)作;1110代表OUT的控制動(dòng)作;1111代表HLT的控制動(dòng)作。一個(gè)控制動(dòng)作相當(dāng)于一條控制線,就要使該控制線為高電位。這個(gè)由4個(gè)位組成的編碼,必須被譯成一個(gè)信號(hào),即譯為某一控制線為高電位,這就是譯碼器的任務(wù)。譯碼器可以由與門和非門組成,下圖就是一個(gè)4位譯碼器。4位應(yīng)該可以有16種編碼的可能,由于我們的模擬機(jī)功能簡(jiǎn)單,只有5條指令,所以只要5個(gè)與門就夠了。3.5.1指令譯碼器指令寄存器IR高4位被送入控制部件微機(jī)原理第三章課件3.5.2控制矩陣控制矩陣就是要決定控制字的輸出電平高低一般每一節(jié)拍大都要求兩個(gè)控制字位為高電位,有的可能只有一位為高電位的(如
CP=1),也可能是3位為高電位??刂凭仃囀强刂撇考暮诵牟考聢D是一個(gè)控制矩陣(CM)電路圖控制字有12位,每一指令要執(zhí)行6拍,每拍均有不同的位為高電位,下圖是本模型機(jī)中控制矩陣的電路圖:3.5.2控制矩陣控制矩陣就是要決定控制字的輸出電平高低控制矩陣控制矩陣控制矩陣2電路組成環(huán)形計(jì)數(shù)器,使T0至T5的6根橫線輪流為高電位;指令控制信號(hào)線為中間4根橫線,它們的電位高低由指令譯碼器決定控制字輸出CON,最下面部分是由19個(gè)與門和6個(gè)或門組成一個(gè)邏輯電路。這個(gè)電路共有12個(gè)輸出端,就是控制字CON:CON=CPEPIMERLIEILAEASUEULBLO
控制矩陣的初始化開機(jī)前使CLR為高電位,則此時(shí)環(huán)形計(jì)數(shù)器復(fù)位至T0=1,其他各位為0。這就是說,每一節(jié)拍都是從T0開始的。控制矩陣2電路組成3.5.3其他控制電路時(shí)鐘脈沖發(fā)生器,包括時(shí)鐘振蕩器及射極跟隨器,輸出CLK運(yùn)行/停車觸發(fā)器,其輸出去啟動(dòng)時(shí)鐘振蕩器“啟動(dòng)”和“清除”按鈕,由人直接操作的主令電器,命令都是由此開始的3.5.3其他控制電路時(shí)鐘脈沖發(fā)生器,包括時(shí)鐘振蕩器及射
3.6微型計(jì)算機(jī)功能的擴(kuò)展模型機(jī)的不足硬件過于簡(jiǎn)單,尤其是控制部件只能接受5條指令而產(chǎn)生相應(yīng)的例行程序。軟件開發(fā)問題,即如何利用現(xiàn)有的指令系統(tǒng),經(jīng)過靈活的編程以解決更多更復(fù)雜的問題。擴(kuò)展模型機(jī)的功能中央處理器控制器算術(shù)邏輯部件(ALU)寄存器的個(gè)數(shù)、性能等
3.6微型計(jì)算機(jī)功能的擴(kuò)展模型機(jī)的不足算術(shù)邏輯部件及控制器的功能有相當(dāng)?shù)臄U(kuò)展,這樣,就既可能進(jìn)行邏輯運(yùn)算,也有跳轉(zhuǎn)和循環(huán)運(yùn)算的功能??刂破鞯脑鰪?qiáng),指令系統(tǒng)已擴(kuò)大到28條指令增加的部件子程序計(jì)數(shù)器SC變址寄存器X隨機(jī)存取存儲(chǔ)器RAMMDR輸入寄存器算術(shù)邏輯部件及控制器的功能有相當(dāng)?shù)臄U(kuò)展,這樣,就既可能進(jìn)行邏微型計(jì)算機(jī)功能的擴(kuò)展5本機(jī)共有28條指令,可分為3類:1.訪問存儲(chǔ)器指令(memoryreferenceinstruction,
MRI)與存儲(chǔ)器的讀/寫有關(guān),其地址字段必須為8位(256個(gè)地址)。特點(diǎn):由指令寄存器分出來的地址字段(8位的地址字段)必定進(jìn)入MAR(存儲(chǔ)器地址寄存器),這就能夠識(shí)別出MRI這類指令。助記符操作碼操作數(shù)意義LDA0000nn將地址nn的內(nèi)容裝入AADD0001nn將地址nn的內(nèi)容與A相加SUB0010nn將地址nn的內(nèi)容與A相減STA0011nn將A中內(nèi)容存入地址nn中LDB0100nn將地址nn的內(nèi)容裝入BLDX0101nn將地址nn的內(nèi)容裝入X微型計(jì)算機(jī)功能的擴(kuò)展5本機(jī)共有28條指令,可分為3類:助記符微型計(jì)算機(jī)功能的擴(kuò)展62.轉(zhuǎn)移指令 可用以改變程序的順序,可以在規(guī)定的某種條件下將程序進(jìn)程向前轉(zhuǎn)移或向后轉(zhuǎn)移,也可跳過若干條指令語句或去執(zhí)行某個(gè)子程序之后再回至下一條指令語句。特點(diǎn):由指令寄存器IR分出來的地址段(8位)將進(jìn)入程序計(jì)數(shù)器PC(即LP=1),或子程序計(jì)數(shù)器(LS=1)。助記符操作碼操作數(shù)意義JMP0110nn無條件轉(zhuǎn)移至程序nnJAM0111nn(A)=負(fù)則轉(zhuǎn)移至程序nnJAZ1000nn(A)=0則轉(zhuǎn)移至程序nnJIM1001nn(X)=負(fù)則轉(zhuǎn)移至程序nnJIZ1010nn(X)=0則轉(zhuǎn)移至程序nnJMS1011起始地址轉(zhuǎn)至子程序的起始地址微型計(jì)算機(jī)功能的擴(kuò)展62.轉(zhuǎn)移指令助記符操作碼操作數(shù)意義微型計(jì)算機(jī)功能的擴(kuò)展73.邏輯運(yùn)算指令 控制器只要接到1111的高4位,即知為運(yùn)算指令,然后控制器再辨認(rèn)選擇碼以確定進(jìn)行什么樣的運(yùn)算。這類指令的特點(diǎn)是與存儲(chǔ)器及程序計(jì)數(shù)器都無關(guān),而是與ALU、A及B寄存器有關(guān)。由于這些運(yùn)算都是在ALU和A,B之間進(jìn)行的,所以不需地址碼。低4位可以不置數(shù),由其隨機(jī)存在,并不產(chǎn)生任何影響。微型計(jì)算機(jī)功能的擴(kuò)展73.邏輯運(yùn)算指令微型計(jì)算機(jī)功能的擴(kuò)展8助記符操作碼選擇碼低4位意義NOP11110000隨意空操作CLA11110001累加器A清零XCH11110010累加器A與變址器X內(nèi)容交換DEX11110011變址器X內(nèi)容減1INX11110100變址器X內(nèi)容加1CMA11110101累加器A內(nèi)容取反CMB11110110累加器B內(nèi)容取反LOR11110111A和B各位進(jìn)行或運(yùn)算AND11111000A和B各位進(jìn)行與運(yùn)算NOR11111001A和B各位進(jìn)行或非運(yùn)算NAN11111010A和B各位進(jìn)行與非運(yùn)算XOR11111011A和B各位進(jìn)行異或運(yùn)算BRB11111100由子程序返回主程序INP11111101輸入:外部數(shù)據(jù)裝入I再裝入AOUT11111110輸出:A的內(nèi)容裝入OHLT11111111停機(jī):CLK停發(fā)微型計(jì)算機(jī)功能的擴(kuò)展8助記符操作碼選擇碼低4位意義NOP113.7初級(jí)程序設(shè)計(jì)舉例利用上節(jié)提供的指令系統(tǒng),可以據(jù)此進(jìn)行程序設(shè)計(jì)。初級(jí)程序主要包括下列的程序模式:簡(jiǎn)單程序——程序一統(tǒng)到底,中間沒有任何分支和跳轉(zhuǎn)。分支程序——程序進(jìn)行中,根據(jù)判斷程序執(zhí)行的不同結(jié)果而分別跳轉(zhuǎn)至其他子程序去。循環(huán)程序——程序進(jìn)行過程中,在某一循環(huán)體進(jìn)行若干次循環(huán)運(yùn)行,然后再繼續(xù)前進(jìn)。調(diào)用子程序——程序進(jìn)行至某一階段,調(diào)用存儲(chǔ)于某存儲(chǔ)區(qū)中的某個(gè)子程序,然后返回至主程序繼續(xù)運(yùn)行下去。3.7初級(jí)程序設(shè)計(jì)舉例利用上節(jié)提供的指令系統(tǒng),可以據(jù)此初級(jí)程序設(shè)計(jì)舉例2【例3.1】分支程序指R0
LDA
6H
令R1
SUB
7H
區(qū)R2
JAM
5H
R3
JAZ
5H
R4
JMP
1H
R5
HLT數(shù)R6
25(10)據(jù)區(qū)R7
9(10)根據(jù)程序清單,分析程序執(zhí)行的順序及結(jié)果A<--(6H)A<-(A)-(7H)(A)<0開始(A)=0HLTYYNN初級(jí)程序設(shè)計(jì)舉例2【例3.1】分支程序A<--(6H)A<-初級(jí)程序設(shè)計(jì)舉例4【例3.2】循環(huán)程序 利用變址寄存器可以設(shè)計(jì)一個(gè)循環(huán)程序:R0
LDX
5H
R1
DEX
R2
JIZ
4H
R3
JMP
1H
R4
HLT停機(jī)R5
3(10)
分析程序運(yùn)行的過程X<--(R5)X<-(X)-1(X)=0開始HLTYN初級(jí)程序設(shè)計(jì)舉例4【例3.2】循環(huán)程序X<--(R5)X<-初級(jí)程序設(shè)計(jì)舉例6【例3.3】乘法計(jì)算的程序利用循環(huán)程序可作乘法計(jì)算,例如要求12(10)
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫網(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ì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 借用車合同范本
- 專業(yè)速遞物流服務(wù)
- 軟裝采購合同樣式
- 三方保溫安全補(bǔ)充協(xié)議
- 簡(jiǎn)單勞務(wù)分包清包工合同
- 廢舊設(shè)備拆除合同
- 牛犢購銷合同范本
- 商務(wù)箱包選購協(xié)議
- 保證書寫作要點(diǎn)明了
- 雞蛋采購供應(yīng)協(xié)議
- 公司經(jīng)營發(fā)展規(guī)劃
- 2024譯林版七年級(jí)英語上冊(cè)單詞(帶音標(biāo))
- 品管圈PDCA案例-普外科提高甲狀腺手術(shù)患者功能鍛煉合格率
- 新媒體復(fù)習(xí)題與參考答案
- 2024年公司職代會(huì)發(fā)言稿(3篇)
- 菏澤學(xué)院課程與教學(xué)論(專升本)復(fù)習(xí)題
- 電玩城租賃經(jīng)營合同
- 2024年中國救生圈市場(chǎng)調(diào)查研究報(bào)告
- 動(dòng)火作業(yè)應(yīng)急預(yù)案樣本(4篇)
- Unit 4 Plants around us(說課稿)-2024-2025學(xué)年人教PEP版(2024)英語三年級(jí)上冊(cè)
- 2024年抖音直播平臺(tái)搭建合同
評(píng)論
0/150
提交評(píng)論