愛伊米

電腦是如何執行程式碼的?

當你在編譯器裡寫出程式的時候,它是如何在計算機上執行的?又或者說程式設計師寫的程式碼電腦是如何執行的?接下來我們以最簡單的C語言的“Hello world”程式碼來告訴你,程式是如何執行。

電腦是如何執行程式碼的?

1。編寫完程式後,一個sum。c檔案就儲存在了桌面上,這個叫作C原始檔。那桌面又屬於計算機的哪一個部分呢?

電腦是如何執行程式碼的?

一臺計算機包含如下基本3個部分:

在計算機中,儲存器用來儲存資訊。儲存器又分為

內部儲存器

外部儲存器

,內部儲存器即我們所說的記憶體,而外部儲存器就是我們說的磁碟,磁碟又分為硬碟和軟盤,而我們電腦中的大部分就都是硬碟了,這裡也分為固態硬碟和傳統機械硬碟。不管怎麼說吧,磁碟也好記憶體也罷,就是用來

存放資料

的,那麼我們就知道了這個C原始檔應該就是存放在電腦中的硬碟中了。

程式碼被儲存到硬碟之後,當計算機要執行程式的時候,就把程式碼從硬碟複製到記憶體中。那麼在這個過程中,

CPU起到什麼作用?

儲存器的層次結構如下

電腦是如何執行程式碼的?

透過這張圖,我們可以清晰直觀地瞭解到

CPU,記憶體和硬碟

三者之間的關係。我們之前的程式碼被儲存到了

硬碟中

,如果要

執行這段程式

的話,需要把這段程式碼從硬碟中讀取到

記憶體

中,此時的程式碼已經變成了二進位制檔案儲存在

記憶體

中。程式碼的作用是把求出a + b 的值並輸出顯示到螢幕上,CPU收到“加”這個指令後,就把a的值和b的值讀入到

暫存器

中、那麼問題又來了,

CPU是啥?

2.CPU是啥玩意

電腦是如何執行程式碼的?

CPU主要由

運算器、控制器和儲存器

組成。

CPU的作用主要有以下幾種功能:

接下來,我們重點介紹

暫存器

運算器

。微電子的同學應該很熟悉

暫存器

(由觸發器組成)了,通俗來講暫存器是儲存部件,容量非常有限,能儲存的資料的大小。暫存器用來存放指令、資料等處理物件。現再來說一般有兩種,也就是我們常聽說的32位和64位,32位的暫存器就能儲存4個位元組的資料,64位的暫存器就能儲存8個位元組的資料,另外CPU也分為32位和64位其實就是由其中的暫存器的位數決定的。現在的CPU一般都內建了很多的暫存器,以此來完成比較複雜的操作。

運算器是計算的核心

,主要的作用負責從

記憶體讀入暫存器的資料

。需要注意的是:運算器是沒法直接操作記憶體中的資料的,運算器操作的資料是

暫存器中存放的資料

。3。CPU和記憶體的互動

程式程式碼被讀取到記憶體中了,現在要執行這段程式碼,那就需要CPU出馬了,首先,CPU會去讀取需要進行操作的資料。繼續看這程式碼:也就是需要讀取資料a和b,那麼

讀取到的資料a和b存放在哪了呢

?根據我們上面對CPU簡單的瞭解可知,資料a和b是被放到了CPU中的

暫存器

中,如下圖所示:

電腦是如何執行程式碼的?

在CPU中有兩個比較重要的元件就是運算器和暫存器,CPU中的暫存器可以有很多個,再看記憶體,是一個個類似樓房形狀,每層樓房都有編號,比如說現在資料a和b分別存放在#1和#2上,然後CPU將他們讀取放在暫存器R1和R2上。這個時候就要計算a和b的和,這就用到了運算器,它會拿到暫存器R1和R2,也就是拿到資料a和b,然後做加法運算。

電腦是如何執行程式碼的?

計算之後的結果即sum,運算器會再次把它放到

暫存器

,比如R1中,這個時候之前的資料b就會被覆蓋,如此一來,CPU和記憶體就一起完成一次加法運算操作。接下里,我們的關注點從加法運算轉移到記憶體,實際上,程式程式碼被載入到記憶體的時候會產生資料和指令兩部分,資料我們都清楚,

那指令是什麼

?指令就是說明程式該怎麼執行。對於CPU來說就是告訴CPU該做什麼,比如告訴CPU,讀取資料a和b,然後再將他們相加,即CPU是根據指令幹活,指令讓怎麼幹,CPU就執行什麼操作。

4 CPU執行指令的過程 指令執行過程:取指令-分析指令-執行指令

電腦是如何執行程式碼的?

此外,每取完一條指令,還需要為下一條指令作準做準備成下一條指令的地址。

到這裡,應該對程式是如何執行的瞭解差不多了。