- C語言程序設計與實踐(第3版)
- 謝滿德 凌云等編著
- 664字
- 2024-05-10 13:55:18
1.2.1 指令與程序

第03講
計算機的功能強大,但是沒有智能,而且每次只能完成非常簡單的任務。計算機必須通過一系列簡單任務的有序組合才能完成復雜任務。因此,人只能以一個簡單任務接一個簡單任務的方式來對計算機發出指令。這個簡單任務稱為計算機的指令。一條指令本身只能完成一個最基本的功能,如實現一次加法運算或一次大小的判別。不同的指令能完成不同的簡單任務。但是通過對多條指令的有序組織,就能完成非常復雜的工作,這一系列計算機指令(也可理解為人的命令)的有序組合就構成了程序,對這些指令的組織過程就是編程的過程,組織規則就是編程的語法規則。
例1-2 假設計算機能識別的指令有以下四條:
Input X:輸入數據到存儲單元X中。
Add X Y Z:將X、Y相加并將結果存到Z中。
Inv X:將X求反后存回X。
Output X:輸出X的內容。
請編寫一段由上述指令組成的虛擬程序,實現以下功能:輸入3個數A、B和C,求A+B-C的結果。
程序如下:

由例1-2可以看出,通過指令的有序組合,能完成單條指令無法完成的工作。上述程序中的指令是假設的,事實上,不同CPU支持的指令集也不同(由CPU硬件生產商決定提供哪些指令)。有點硬件常識的讀者都知道,計算機的CPU和內存等都是集成電路,其能存儲和處理的對象只能是0、1組成的數字序列。因此這些指令也必須以0、1序列表示,最終程序在計算機中也是以0、1組成的指令碼(用0、1序列編碼表示的計算機指令)來表示的,這個序列能夠被計算機CPU所識別。程序與數據均存儲在存儲器中。運行程序時,將準備運行的指令從內存調入CPU中,由CPU處理這條指令。CPU依次處理內存中的所有指令,這就是程序的運行過程。