算術運算導致溢位 CPU的控制器與運算器

2021-10-11 16:03:21 字數 1523 閱讀 2214

計算機基礎方面的知識,對於一些非科班出身的同學來講,一直是他們心中的痛,而對於科班出身的同學,很多同學在工作之後,也意識到自身所學知識的不足與欠缺,想回頭補補基礎知識。關於計算機基礎的課程很多,內容繁雜,但無論是相關書籍還是大學課程,都有點脫離工作。特別地,計算機基礎知識體系龐雜,想要從零學習或者複習都耗時耗力。

有鑑於此,本系列文章將帶你更快的補足程式設計必備基礎知識,涵蓋計算機領域三大基礎知識:計算機組成原理、作業系統、計算機網路,這些都是大學計算機課程裡面最重要的內容。文章對這些內容做了提煉和總結,摒棄了作為程式設計師不需要掌握的知識。

目的是:

本篇是計算機組成原理之cpu的控制器和運算器

控制器是cpu的組成部分,用於協調和控制計算機的執行。

下面逐一簡單介紹。

程式計數器(program counter)

簡稱pc,用來儲存從記憶體提取的下一條指令的位址。當cpu執行一條指令時,首先需要根據pc中存放的指令位址,將指令由記憶體取到指令暫存器中,此過程稱為「取指令」。與此同時,pc中的位址或自動加1或由轉移指標給出下一條指令的位址,此後經過分析指令,執行指令,完成第一條指令的執行,而後根據pc取出第二條指令的位址,如此迴圈,執行每一條指令,保證程式能夠連續地執行下去。

時序發生器

用於傳送時序脈衝,cpu依據不同的時序脈衝有節奏地進行工作,類似於cpu的節拍器。

指令編譯器

用於翻譯指令及控制傳輸指令包含的資料。

指令暫存器

用於快取從記憶體或快取記憶體裡取出的指令,cpu執行指令時,就可以從指令暫存器中取出相關指令來進行執行。

主存位址暫存器

儲存當前cpu正要訪問的記憶體單元的位址,通過匯流排跟主存通訊。

主存資料暫存器

儲存當前cpu正要讀或寫的主存資料,通過匯流排與主存通訊。

通用暫存器

用於暫時存放或傳送資料或指令。

運算器是用來進行資料運算加工的。

資料緩衝器

分為輸入緩衝和輸出緩衝,輸入緩衝暫時存放外設送過來的資料,輸出緩衝暫時存放送往外設的資料。

alu

全稱為算數邏輯單元,是運算器的主要部件,能完成常見的位運算(左移、右移、與、或、非等)和算術運算(加減乘除等)。

狀態字暫存器

存放運算狀態(條件碼、進製、溢位、結果正負等)和運算控制資訊。

通用暫存器

暫時存放或傳送資料或指令,儲存alu的運算中間結果。

算術運算導致溢位。 整數溢位錯誤

當程式嘗試儲存對於宣告的整數型別而言太大的整數值時,將發生整數溢位。這是一種算術溢位錯誤,不僅會導致錯誤的結果和系統不穩定,還會導致緩衝區溢位,並為攻擊者提供了切入點。讓我們看看為什麼可能發生整數溢位錯誤,它們怎麼可能很危險,以及如何防止它們。在最基本的級別上,當算術運算的結果需要比目標變數更多的位...

CPU控制器相關

運算器和控制器一同構成了cpu。控制器的組成 1.程式計數器。即pc暫存器 指令位址暫存器 2.指令暫存器ir 多數計算機都已經將其擴充為了指令佇列 棧 3.指令解碼器 4.控制訊號形成元件 5.時序發生器 6.位址暫存器ar 專門收納資料的位址,無論資料來自指令還是暫存器還是主存,他們的位址都存在...

運算器和控制器

請教一下此圖具體的詳細執行流程,才疏學淺沒有看懂哇。你好!這是你第一次使用markdown編輯器所展示的歡迎頁。如果你想學習如何使用markdown編輯器,可以仔細閱讀這篇文章,了解一下markdown的基本語法知識。全新的介面設計,將會帶來全新的寫作體驗 在創作中心設定你喜愛的 高亮樣式,mark...