計算機是怎樣執行的?

2021-08-16 19:48:58 字數 1997 閱讀 4791

微機的工作過程就是不斷地從記憶體中取出指令並執行指令的過程!

當開始執行程式時,首先應把第一條指令所在儲存單元的位址賦予程式計數器pc,然後機器就進入了取指階段。在取指階段,cpu從記憶體中讀取的內容必為指令。然後送往資料緩衝暫存器dr,經dr送往指令暫存器ir。之後由指令解碼器id對ir中的指令的操作碼字段進行解碼,然後又pla發出執行該指令所需要的各種微操作控制訊號。取指階段到此結束。之後,機器就進入執行指令階段,這時cpu便執行指令所規定的具體操作。當一條指令執行完畢後,即轉入下一條指令的取指階段,如此迴圈往復,知道遇到暫停或程式結束為止!

註明:操作碼字段:指令通常由操作碼(operation code)和運算元(operand)兩部分組成。操作碼表示該指令完成的操作,運算元表示菜價操作的數本身或運算元所在的位址。指令根據其所含內容的不同而有單位元組指令、雙位元組指令以及多位元組指令等,因此,計算機在執行一條指令時,就有可能要處理一到多個不等位元組數目的**資訊,包括操作碼、運算元或運算元的位址。

我們在一台簡化的8位機上完成「6+5」操作為例,來說明計算機的工作過程。下表是計算機執行「6+5」操作的機器語言和組合語言:

我們將採用**結合的方式來講解計算機執行「6+5」操作的具體過程:

這是計算機取第一條指令的操作過程示意圖

過程如下:

當開始執行程式時,將第一條指令所在儲存單元的位址0000h送到程式計數器pc中,由此開始取指階段:

1,pc中的位址送到位址暫存器ar中

2,pc將位址送到ar後,pc執行加1操作,pc中的位址由0000h變成了0001h。此時程式計數器pc便指向下乙個要讀取的記憶體單元,但是,ar中的內容仍然0000h。

3,位址暫存器ar中的位址0000h通過外部位址匯流排ab被送到儲存器的位址解碼電路中,位址經過位址解碼電路的解碼操作後,選中0000h。

4,cpu發出儲存器「讀」命令。

5,在讀命令的操作下,便讀出被選中的位址單元0000h中的內容「10110001」也就是「b1h」。並讀到外部資料匯流排db上。

6,db上的內容「b1h」被送往資料緩衝暫存器dr中。

7,之後,dr中的內容「b1h」被送到指令暫存器ir中,由於讀取的是指令的操作碼,因此,ir中的操作碼之後會被送到指令解碼器id中進行解碼,經過解碼,cpu識別出操作碼所代表的指令是什麼。再由pla發出執行指令所需要的各種控制命令。

到此,計算機已經完成了取指階段。經過對操作碼「b1h」的解碼,cpu知道這是一條內容為「把下一單元中的運算元送到累加器中」的雙位元組指令。所以,執行該指令的操作就是從下乙個儲存單元中取出指令第二個位元組中的運算元06h,並送入累加器中。該指令的執行過程如圖所示:

執行指令過程如下:

1,把pc內容01h送到位址暫存器ar中。

2,pc中內容送到ar後,pc執行加1操作,內容由0001h變為0002h。同樣,此時,ar中的內容0001h並沒有變化。

3,把位址暫存器中的內容「0001h」送到外部位址匯流排ab中,之後到達儲存器的位址解碼電路中,經解碼後選中位址單元「0001h」。

4,cpu發出儲存器「讀」命令。

5,在「讀」命令的操作下,讀出0001h儲存單元中的內容「00000110」,也就是操作碼06h。

6,將讀出的內容經由外部db將其放到資料緩衝暫存器dr中。

7,資料緩衝暫存器中的內容」06h「由內部資料匯流排db送到累加器中。

至此,第一條指令的執行過程已經完成。

此時,程式計數器pc中的內容為0002h,指向第二條指令所在儲存單元的位址。

計算機繼續進行取指和執行指令的操作,如此迴圈下去,直至程式結束!

《微型計算機原理(第二版)》 王忠民主編

計算機的三大原則(《計算機是怎樣執行起來的》筆記)

1.從硬體上來看,可以說計算機是執 行輸入 運算 輸出三種操作的機器 計算機的硬體由大量的 ic integrated circuit,積體電路 組成 如圖 所示 每塊 ic 上都帶有許多引腳。這些引腳有的用於輸入,有的用於輸出。ic 會在其內部對外部輸入的資訊進行運算,並把運算結果輸出到外部。運算...

計算機是怎樣跑起來的

第一章 計算機的三大原則 一 熱身問題 1.硬體和軟體的區別?答 硬體是看得見摸得著的裝置,比如計算機的顯示器,鍵盤等等 軟體是計算機所執行的程式,即指令和資料 原則上軟體是看不到也摸不著的。2.儲存字串 中國 需要幾個位元組?答 在gbk字元編碼下,需要4個位元組。3.什麼是編碼?答 通常將為了便...

讀《計算機是怎樣跑起來的》

用了四五天時間抽空把矢澤久雄先生的 計算機是怎樣跑起來的 讀完了,接下來準備讀他的 程式是怎樣跑起來的 再讀之前先寫寫這本書的書評。說實話,這本書沒有我之前推的 網路是怎樣連線的 效果好,可能是因為我期望太高了,不過瑕不掩瑜,這本書也是值得推薦初級程式設計師閱讀的。讀過這本書,你會發現,你之前學習過...