計算機組成原理 原理篇 指令與運算 06指令跳轉

2021-10-10 18:21:57 字數 1170 閱讀 4890

拿我們用的 intel cpu 來說,裡面差不多有幾百億個電晶體。實際上,一條條計算機指令執行起來非常複雜。好在 cpu 在軟體層面已經為我們做好了封裝。對於我們這些做軟體的程式設計師來說,我們只要知道,寫好的**變成了指令之後,是一條一條順序執行的就可以了。

邏輯上,我們可以認為,cpu 其實就是由一堆暫存器組成的。而暫存器就是 cpu 內部,由多個觸發器(flip-flop)或者鎖存器(latches)組成的簡單電路。觸發器和鎖存器,其實就是兩種不同原理的數位電路組成的邏輯門。

乙個 cpu 裡面會有很多種不同功能的暫存器。我這裡給你介紹三種比較特殊的。

乙個是pc 暫存器(program counter register),我們也叫指令位址暫存器(instruction address register)。顧名思義,它就是用來存放下一條需要執行的計算機指令的記憶體位址。

第二個是指令暫存器(instruction register),用來存放當前正在執行的指令。

第三個是條件碼暫存器(status register),用裡面的乙個乙個標記位(flag),存放 cpu 進行算術或者邏輯計算的結果。

除了這些特殊的暫存器,cpu 裡面還有更多用來儲存資料和記憶體位址的暫存器。這樣的暫存器通常一類裡面不止乙個。我們通常根據存放的資料內容來給它們取名字,比如整數暫存器、浮點數暫存器、向量暫存器和位址暫存器等等。有些暫存器既可以存放資料,又能存放位址,我們就叫它通用暫存器。

實際上,乙個程式執行的時候,cpu 會根據 pc 暫存器裡的位址,從記憶體裡面把需要執行的指令讀取到指令暫存器裡面執行,然後根據指令長度自增,開始順序讀取下一條指令。可以看到,乙個程式的一條條指令,在記憶體裡面是連續儲存的,也會一條條順序載入。而有些特殊指令,也就是跳轉指令,會修改 pc 暫存器裡面的位址值。這樣,下一條要執行的指令就不是從記憶體裡面順序載入的了。事實上,這些跳轉指令的存在,也是我們可以在寫程式的時候,使用 if…else 條件語句和 while/for 迴圈語句的原因。

計算機組成原理 指令

1 指令劃分為操作碼和位址碼字段,由二進位制數字組成 指令系統中採用不同定址方式的目的主要是縮短指令長度,擴大定址空間,提高程式設計靈活性。2 運算型指令的定址與轉移型指令的定址不同點在於運算型指今定址的是運算元,而轉移性指令定址的則是下次欲執行的指令的位址。3 零位址指令只有操作碼,沒有運算元。這...

計算機組成原理之組成篇

匯流排的分類 系統匯流排 計算機匯流排的仲裁 為了解決匯流排使用權的衝突問題 匯流排的仲裁方法 鏈式查詢 定時器定時查詢 相當於就是乙個編號的鏈式查詢,只不過它這種情況下不是按照優先順序排列的 獨立請求 好處 響應速度快,優先順序可動態改變 壞處 裝置連線多,匯流排控制複雜 cpu與io裝置的通訊方...

計算機組成原理複習篇

1 說明高階語言 組合語言和機器語言的差別及其聯絡 機器語言是計算機硬體能夠直接識別的語言,組合語言是機器語言的符號表示,高階語言是面向演算法的語言。高階語言編寫的程式 源程式 處於最高層,必須翻譯成組合語言,再由匯程式設計序彙編成機器語言 目標程式 之後才能被執行。2 馮諾依曼計算機的特點是什麼 ...