程序就是指令的集合,為使計算機按預(yù)定要求工作,首先要編制程序。程序是一個特定的指令序列,它告訴計算機要做哪些事,按什么步驟去做。指令是一組二進制信息的代碼,用來表示計算機所能完成的基本操作。
1、程序
程序是為求解某個特定問題而設(shè)計的指令序列。程序中的每條指令規(guī)定機器完成一組基本操作。如果把計算機完成一次任務(wù)的過程比作樂隊的一次演奏,那么控制器就好比是一位指揮,計算機的其它功能部件就好比是各種樂器與演員,而程序就好像是樂譜。計算機的工作過程就是執(zhí)行程序的過程,或者說,控制器是根據(jù)程序的規(guī)定對計算機實施控制的。例如,對于算式
計算機的解題步驟可作如下安排:
步驟1:取a ;
步驟2:取b ;
步驟3:判斷 ;
若 b≥0,執(zhí)行步驟4
若b<0,執(zhí)行步驟6
步驟4:執(zhí)行a+b;
步驟5:轉(zhuǎn)步驟7;
步驟6:執(zhí)行a-b;
步驟7:結(jié)束。
計算機的工作過程可歸結(jié)為:取指令→分析指令→執(zhí)行指令→再取下一條指令,直到程序結(jié)束的反復(fù)循環(huán)過程。通常把其中的一次循環(huán)稱為計算機的一個指令周期??傊覀兛砂殉绦?qū)τ嬎銠C的控制歸結(jié)為每個指令周期中指令對計算機的控制。
2、指令
程序是由指令組成的。指令是機器所能識別的一組編制成特定格式的代碼串,它要求機器在一個規(guī)定的時間段(指令周期)內(nèi),完成一組特定的操作。指令的基本格式可歸結(jié)為操作碼OP和操作數(shù)地址AD兩部分,具體內(nèi)容是:
?、?指出計算機應(yīng)完成的一組操作內(nèi)容,如傳送(MOV)、加法(ADD)、減法(SUB)、輸出、停機(HLT)、條件轉(zhuǎn)移(JZ)等。這部分稱為指令的操作碼部分。
?、?兩個操作數(shù)的地址和存放結(jié)果的地址及尋址方式。
?、?為保證程序執(zhí)行的連續(xù)性,在執(zhí)行當前指令時,還需指出下一條指令的地址。由于指令在存儲器中一般是順序存放的,所以只要設(shè)置一個指令指針(IP),每執(zhí)行一條指令,IP自動加1,便自動指出下一條指令的地址,而不必在指令中專門指出下一條指令的地址 。只有在轉(zhuǎn)移指令中才指出下一條指令的地址。此時,IP的內(nèi)容將隨轉(zhuǎn)移指令所指示的內(nèi)容改變。
3、指令的執(zhí)行
指令規(guī)定的內(nèi)容是通過控制器執(zhí)行的,或者說控制器是按照一條指令的內(nèi)容指揮操作的。
?、?控制器的功能
① 定序功能——保證按程序規(guī)定的順序執(zhí)行指令。
② 定時功能——計算機處理信息是通過信息在計算機的邏輯電路中的流通完成的。為保證計算機工作的準確性,控制器要為計算機 中的各部件提供統(tǒng)一節(jié)拍,使各條指令及組成每條指令的各基本操作(通常稱為微操作)都嚴格地按規(guī)定的時間有條不紊地自動執(zhí)行。
?、?操作控制功能——控制器應(yīng)能按照指令規(guī)定的內(nèi)容,在相應(yīng)的節(jié)拍向有關(guān)部件發(fā)出操作控制信號。
?、?控制器的組成
在控制器中,上述功能分別由指令部件、時序部件和操作控制部件來完成。它們的組成如圖1-8所示。
① 指令部件:指令部件的主要功能是取指令和分析指令。它由指令指針I(yè)P(也叫指令計數(shù)器IC或程序計數(shù)器PC)、指令寄存器IR、指令譯碼器、地址計算部件組成。其中:
●指令指針I(yè)P的功能是指出當前指令的地址。它有加1功能,通常每取一條指令后自動加1,以指出下條指令的地址。遇到特殊情況(如轉(zhuǎn)移)可通過地址計算部件形成下一條指令的地址。
●指令寄存器IR保存由存儲器取來的指令,并分別把操作碼OP和操作數(shù)地址AD送指令譯碼和地址計算部件。
●指令譯碼器也稱操作碼譯碼器。它按操作碼的內(nèi)容向操作控制部件提供相應(yīng)的操作電信號。
●地址計算部件的作用是對指令中地址碼進行(變址、間址等)運算,求出的操作數(shù)地址送存儲器以取出數(shù)據(jù);或者把轉(zhuǎn)移指令中指出的下一條指令地址送IP。
?、?時序部件:時序部件也叫節(jié)拍發(fā)生器,它能為各部件提供一個時間基準。時鐘頻率(如800MHz,1GHz,2 GHz,2.4 GHz,3 GHz…)越高,計算機的工作速度就越快。
?、?操作控制部件:該部件的功能是根據(jù)指令譯碼器的規(guī)定內(nèi)容,在規(guī)定的節(jié)拍內(nèi)向有關(guān)部件發(fā)出操作控制信號。
?、?指令的執(zhí)行過程
通常,計算機執(zhí)行一條指令的步驟如下:
① 把指令指針I(yè)P中的指令地址送存儲器,從該地址取出指令送指令寄存器IR;
?、?地址計算部件,根據(jù)IR中的地址碼形成操作數(shù)地址送存儲器,從該地址取出數(shù)據(jù),送到運算器中的寄存器(或寄存器組);
?、?將IR中的操作碼OP送指令譯碼器進行譯碼;
?、?在控制器發(fā)出的操作信號的控制下,計算機各有關(guān)部件執(zhí)行操作碼OP規(guī)定的操作;
?、?指令指針I(yè)P加1,形成下一條指令地址。如遇到轉(zhuǎn)移指令,則按轉(zhuǎn)移指令對狀態(tài)標志寄存器測試的結(jié)果,決定是否將轉(zhuǎn)移指令中指出的指令地址送指令指針I(yè)P。
評論