簡(jiǎn)單地說(shuō),計(jì)算機(jī)指令就是指揮計(jì)算機(jī)工作的指令和命令,程序就是按一定順序排列的一系列指令,計(jì)算機(jī)的工作過(guò)程就是執(zhí)行程序的過(guò)程。1.指令
計(jì)算機(jī)中的控制器通過(guò)指令指揮機(jī)器工作,人用指令表達(dá)自己的意圖,交給控制器執(zhí)行。通常一條指令包括兩方面:操作碼和操作數(shù)。操作碼決定了要完成的操作,操作數(shù)表示參與操作的數(shù)據(jù)及其所在的單元地址。
在計(jì)算機(jī)中,指令以二進(jìn)制代碼的形式存儲(chǔ)在內(nèi)存中。
在一條指令的執(zhí)行過(guò)程中,第一步是對(duì)指令進(jìn)行取指分析,即按照程序指定的順序從內(nèi)存中取出當(dāng)前要執(zhí)行的指令,送入指令寄存器控制器,對(duì)取來(lái)的指令進(jìn)行分析,即根據(jù)指令中的操作碼判斷計(jì)算機(jī)應(yīng)該做什么。二是執(zhí)行指令,即控制器根據(jù)指令分析的結(jié)果,發(fā)出一系列完成運(yùn)算所需的控制信號(hào),以指揮相關(guān)部件完成本次運(yùn)算,同時(shí)做好準(zhǔn)備為下一條指令。2.指令系統(tǒng)
計(jì)算機(jī)可以執(zhí)行的各種指令的集合稱為計(jì)算機(jī)的指令系統(tǒng)。每臺(tái)計(jì)算機(jī)都有自己特定的指令系統(tǒng),其指令內(nèi)容和格式各不相同。
雖然為不同的CPU設(shè)計(jì)的指令系統(tǒng)不同,但基本上所有的計(jì)算機(jī)都包含以下幾類指令:數(shù)據(jù)傳輸指令、輸入輸出(I/O)指令、算術(shù)運(yùn)算指令、邏輯運(yùn)算指令、移位運(yùn)算指令、程序控制指令、字符串操作指令、處理器控制指令、數(shù)據(jù)轉(zhuǎn)換指令等。
在計(jì)算機(jī)指令系統(tǒng)的優(yōu)化和發(fā)展過(guò)程中,出現(xiàn)了兩個(gè)完全不同的優(yōu)化方向:復(fù)雜指令集計(jì)算機(jī)(Complex Instruction Set Computer,CISC)技術(shù);精簡(jiǎn)指令集計(jì)算機(jī)(Reduced Instruction Set Computer,RISC)技術(shù)。這里的計(jì)算機(jī)指令是指計(jì)算機(jī)最底層的機(jī)器指令,即CPU可以直接識(shí)別的指令。
計(jì)算機(jī)系統(tǒng)變得越來(lái)越復(fù)雜,同時(shí)要求指令系統(tǒng)的結(jié)構(gòu)能夠使計(jì)算機(jī)系統(tǒng)的整體性能更快、更穩(wěn)定。最初,人們采用的優(yōu)化方法是設(shè)置一些功能復(fù)雜的指令,將一些常用的本應(yīng)由軟件實(shí)現(xiàn)的功能改成硬件指令系統(tǒng),即通過(guò)增加硬件的復(fù)雜度來(lái)獲得高性能,這是CISC技術(shù)的思路。
日益復(fù)雜的指令系統(tǒng)不僅難以實(shí)現(xiàn),而且可能降低系統(tǒng)的性能。 1979年,以帕特森教授為首的一群計(jì)算機(jī)科學(xué)家開(kāi)始在加州大學(xué)伯克利分校開(kāi)展這項(xiàng)研究。發(fā)現(xiàn)計(jì)算機(jī)中各種指令的使用率差別很大。 一個(gè)典型程序運(yùn)行過(guò)程中使用的80%的指令,在其指令系統(tǒng)中只占20%的指令。事實(shí)上,最常用的指令是store、fetch和加法等簡(jiǎn)單指令。因此,長(zhǎng)期致力于復(fù)雜指令系統(tǒng)的設(shè)計(jì)實(shí)際上是在設(shè)計(jì)一個(gè)指令系統(tǒng)在實(shí)踐中難以使用的處理器。
RISC 技術(shù)是在1980 年代開(kāi)發(fā)的。它的基本思想是盡可能地簡(jiǎn)化計(jì)算機(jī)指令的功能,只保留那些功能簡(jiǎn)單、可以在一節(jié)拍內(nèi)執(zhí)行的指令,用子程序?qū)崿F(xiàn)更復(fù)雜的功能。3.程序
計(jì)算機(jī)程序(通常簡(jiǎn)稱為程序,在港澳臺(tái)地區(qū)稱為程序)是指按照一定的規(guī)則和思想組織起來(lái),能夠正確完成指定任務(wù)的一系列指令?,F(xiàn)在的計(jì)算機(jī)不能直接理解人類的自然語(yǔ)言,所以不能用自然語(yǔ)言編寫計(jì)算機(jī)程序。程序通常是用某種編程語(yǔ)言編寫的,并在某種目標(biāo)機(jī)器上運(yùn)行。
編寫程序(即編程,其專業(yè)術(shù)語(yǔ)為“編程”)是一項(xiàng)系統(tǒng)而繁瑣的工作,需要程序員具備相應(yīng)的專業(yè)基礎(chǔ)知識(shí),更重要的是良好的編程習(xí)慣和風(fēng)格。就像蓋房子一樣,首先需要設(shè)計(jì)圖紙,然后才開(kāi)始施工。
編寫程序的過(guò)程包括問(wèn)題分析、結(jié)構(gòu)設(shè)計(jì)、用戶界面設(shè)計(jì)、代碼設(shè)計(jì)與調(diào)試、維護(hù)等。通俗地說(shuō),問(wèn)題分析就是明確程序需要完成什么功能,要達(dá)到什么效果。設(shè)計(jì)了程序的總體框架;用戶界面設(shè)計(jì)是指程序運(yùn)行時(shí)與用戶交互的輸入輸出界面的設(shè)計(jì);代碼設(shè)計(jì)是指程序代碼的編寫,然后通過(guò)調(diào)試盡可能地消除程序中的錯(cuò)誤,保證程序的功能性和正確性;對(duì)于正在使用的程序,還需要維護(hù)以糾正錯(cuò)誤或升級(jí)功能和性能。
我們專注高端建站,小程序開(kāi)發(fā)、軟件系統(tǒng)定制開(kāi)發(fā)、BUG修復(fù)、物聯(lián)網(wǎng)開(kāi)發(fā)、各類API接口對(duì)接開(kāi)發(fā)等。十余年開(kāi)發(fā)經(jīng)驗(yàn),每一個(gè)項(xiàng)目承諾做到滿意為止,多一次對(duì)比,一定讓您多一份收獲!