微型計算機的基本工作原理
微型計算機是通過執(zhí)行程序來工作的,機器執(zhí)行不同的程序就能完成不同的任務(wù)。因此,微型計算機執(zhí)行程序的過程體現(xiàn)了微型計算機的基本工作原理。下面通過程序執(zhí)行過程說明微型計算機的基本工作原理。
1.指令和程序
指令是控制計算機操作的代碼,又稱指令碼。指令碼由操作碼和地址碼構(gòu)成。操作碼用于控制機器執(zhí)行何種操作;地址碼用于指示參加操作的操作數(shù)。指令碼的格式為:
操作碼︱地址碼
指令用計算機可識別的二進(jìn)制代碼形式表示,這種代碼稱為機器碼。但機器碼既不便于記憶又不便于書寫,因此人們通常采用助記符表示指令,如表1-4所示。
一種微處理器所有指令的集合或指令的全體稱為它的指令系統(tǒng)。微處理器類型不同,它的指令系統(tǒng)也不一樣,因此Intel8050有78條指令,MCS-51系列中的80C51有111條指令等等。
程序是為完成某項任務(wù)而由指令系統(tǒng)中的若干指令組成的有序集合。編制程序稱為程序設(shè)計。計算機可直接識別和執(zhí)行的用機器碼編寫的程序,稱為目標(biāo)程序。用指令的助記符編寫的程序稱為匯編語言源程序,該程序計算機不能識別和執(zhí)行,需經(jīng)匯編程序匯編生成目標(biāo)程序才能被計算機執(zhí)行。由此可見,計算機只能執(zhí)行機器碼程序。
表 1 指令的三種形式
機器碼 | 機器碼 | 助記符 | 功能 |
01110100 00010101 | 74 15H | MOV A, #15H | (A) ←15H |
00100100 00101011 | 24 2BH | ADD A, #2BH | (A) ←(A)+2BH |
10000000 11111110 | 80 FEH | SJMP $ | 停止 |
2.程序執(zhí)行過程舉例
圖1是計算21+43的程序。以此為例說明微型計算機的工作原理。該程序由三條指令組成,即為:
MOV A, #15H
ADD A, #2BH
SJMP $
每條指令均為雙字節(jié)指令(即第一字節(jié)為操作碼,第二字節(jié)為操作數(shù))。第一條指令的作用是把15H傳送到累加器A;第二條指令是加法指令,它把累加器A中的15H和2BH相加,將結(jié)果保存在累加器A中;第三條是停機指令,執(zhí)行后計算機處于動態(tài)停機狀態(tài)。為了執(zhí)行程序,首先將程序放入內(nèi)存,假設(shè)從3000H單元開始存放程序,共占用了6個存儲單元;然后將程序在內(nèi)存的起始地址3000H放入程序計數(shù)器PC,如圖1(a)所示,此時即可讓計算機開始執(zhí)行程序。
圖1 程序執(zhí)行過程中PC的變化
(1)執(zhí)行第一條指令
第一條指令是雙字節(jié)指令,執(zhí)行過程為:
①微操作控制器將程序計數(shù)器PC中的地址3000H經(jīng)地址寄存器送入地址總線后,向存儲器發(fā)出讀信號,同時使程序計數(shù)器PC中的內(nèi)容自動加1而變成3001H,為讀取
指令的第二個字節(jié)做好準(zhǔn)備;
②存儲器根據(jù)地址總線上的地址找到3001H存儲單元,在讀信號控制下讀出3001H單元的內(nèi)容即操作碼74H送到數(shù)據(jù)總線上;
③經(jīng)數(shù)據(jù)總線將操作碼74H送入指令寄存器IR,經(jīng)緩沖后送入指令譯碼器ID;
④經(jīng)指令譯碼器ID對操作碼74H譯碼并結(jié)合時序部件產(chǎn)生微操作序列,將程序計數(shù)器PC中的地址3001H經(jīng)地址寄存器送入地址總線后發(fā)出讀信號,同時使程序計數(shù)器
PC自動加1變成3002H,為讀取第二條指令做好準(zhǔn)備;
⑤存儲器由地址總線中的新地址3001H把3001H單元的內(nèi)容15H送入數(shù)據(jù)總線;
⑥微操作控制序列將數(shù)據(jù)總線上的操作數(shù)15H送人累加器A中。
至此,第一條指令執(zhí)行結(jié)束,將3001H單元中的第一個操作數(shù)15H送人累加器A。
(2)執(zhí)行第二條指令
第二條指令也是雙字節(jié)指令,第一字節(jié)24H為操作碼,指示進(jìn)行加法操作,兩個操作數(shù)中一個在累加器A中,另一個為該指令的第二個字節(jié)。
第一條指令執(zhí)行結(jié)束,程序計數(shù)器PC中內(nèi)容為3002H。圖1(b)為將要執(zhí)行的第二條指令的內(nèi)存地址。首先將PC中的地址3002H送入地址總線并向存儲器發(fā)出讀
信號,同時PC加1而變?yōu)?003H。存儲器由地址總線上的地址找到3002H單元,在讀信號的控制下,讀出操作碼24H經(jīng)數(shù)據(jù)總線送人IR。經(jīng)IR譯碼,將PC中的3003H送入地址
總線,發(fā)出讀信號,同時使PC自動加1變?yōu)?004H,則PC指向第三條指令,如圖1(c)所示。在操作碼24H的微操作控制下從存儲器3003H單元讀出操作數(shù)2BH送入TMP,控
制ALU將累加器A中15H和TMP中的2BH相加,將兩數(shù)的和經(jīng)內(nèi)部總線送入累加器A,并根據(jù)運算結(jié)果設(shè)置程序狀態(tài)字PSW某些狀態(tài)位的值,完成本條指令的執(zhí)行。
(3)執(zhí)行第三條指令
第三條指令的執(zhí)行過程和第一、第二兩條指令類似,先讀取指令,分析、執(zhí)行指令后,MPU處于動態(tài)停機狀態(tài)。
至此,整個程序的執(zhí)行結(jié)束。
編輯:admin 最后修改時間:2018-11-26