文章出處

CPU的內部結構

    我們都知道CPU是一臺電腦的核心部件,所有的程序都是通過它運行的,那么CPU是如何讓一個程序跑起來的呢?我們今天就來一起簡單的做個了解,首先看下CPU的基本結構

程序流程

    假如現在我們有個兩個數相加的程序,當你點擊運行這個程序時,系統會將這個程序復制到內存中。程序中的這些數據和指令會被存儲在一個一個小的“內存空間”,并給每個空間一個“門牌號”,也就是內存中的地址。

    系統將程序復制到內存中后,會將程序計數器設定到程序運行的開始位置(假設這個程序的開始位置是0100),然后開始運行;當CPU每執行一條指令,程序的累加器的值就自動加1,然后CPU的控制器就會參照程序計數器的數值從內存中讀取命令并執行,那么我們用圖表示這個流程的話大概是下圖中的樣子

   

    在CPU進行運算時,標志寄存器的數值會根據運算結果自動設定。如果程序執行到跳轉指令的時候,會根據地址中的內容跳轉到對應的地址;條件分支在跳轉指令之前會進行比較運算,然后CPU根據標志寄存器的數值進行判斷是否要跳轉

  

    函數調用

    對CPU的執行流程有了個大概的了解后,我們現在可以來看看咱們平時寫的程序函數是怎么運行的了。在介紹之前我們先了解兩個機器語言指令

call指令,把函數要執行的指令地址存儲在名為棧的主內存

return指令,把保存在棧中的地址設定到程序計數器中

    在上圖中,函數執行到0132的時候,并不是通過跳轉指令跳轉到Add函數的入口,而是通過call指令;這個地方和我沒前面講到的條件分支跳轉指令是不一樣的,因為調用完函數,我們還要返回函數調用的地方繼續下一條指令。

    到此,我們可以對程序的運行過程有個大概的了解。

 


文章列表




Avast logo

Avast 防毒軟體已檢查此封電子郵件的病毒。
www.avast.com


arrow
arrow
    全站熱搜
    創作者介紹
    創作者 大師兄 的頭像
    大師兄

    IT工程師數位筆記本

    大師兄 發表在 痞客邦 留言(0) 人氣()