什麼是指令集?

任何 CPU 都是從頭開始設計的,以支持特定的指令集。指令集是 CPU 可以執行的一組硬編碼操作。例如,這些操作可以是將兩個數字相加、跳轉到程序的不同部分或比較兩個值。計算機可以執行的每個操作都由一個操作碼唯一表示。

操作碼

執行程序時,CPU 使用程序計數器來跟踪下一條需要執行的指令。當獲取一條指令時,程序計數器會增加指令的長度,以便它指向下一條指令的開始。每條指令都包含一個操作碼。根據指令,它可能包含也可能不包含操作數。操作數可以是常量值或指向 CPU 寄存器或系統 RAM 中值位置的指針。

一旦獲取了完整的指令,就需要對其進行解碼。這是 CPU 將操作碼和任何操作數分開的過程。解碼後的操作碼用於啟用或禁用 CPU 中將導致正確操作的特定電氣路徑。

一旦指令被解碼,它將被執行。CPU 的��切行為將取決於操作。加法運算會將兩個值相加。跳轉操作將計算跳轉到程序中的位置。比較操作將比較兩個值。NOP 操作將閒置,因為 NOP 代表無操作。

大多數指令隨後將輸出操作結果。此輸出可以轉到處理器寄存器,如果需要,還可以轉到系統 RAM。這些操作中的每一個都需要一個時鐘週期才能完成。

非法操作碼

每個 CPU 架構都有製造商發布的特定操作碼列表。這些操作碼的值不一定是跨平台的,這就是為什麼軟件需要針對不同的架構進行編譯。在某些情況下,製造商還包括未記錄的操作碼。這些被稱為“非法操作碼”。非法操作碼雖然沒有記錄,但每次調用時都會執行相同的功能。但是,作為未記錄和非標準的功能,對 CPU 架構的更新可以簡單地刪除它們。

Apple II 上的一些早期計算機遊戲依賴於特定的非法操作碼。然後他們在後來的 Apple IIc CPU 修訂版中遇到了性能和穩定性問題,因為 IIc 刪除了遊戲所需的非法操作碼。非法操作碼也被版權保護圈用作一種安全方法,通過默默無聞地打擊盜版者破解其內容。一些非法操作碼只是作為調試工具和錯誤處理程序。

x86 指令集包含大量未記錄的非法操作碼。有趣的是,其中一些在 Intel 和 AMD CPU 之間共享,這表明兩家公司都公開知道他們的目的,但沒有記錄。

編譯器和彙編

大多數程序都是用高級語言編寫的。這些相對容易閱讀,通常使用英文單詞或速記來最小化學習曲線。計算機要執行這些程序,就需要對其進行編譯。編譯器基本上是翻譯器。它獲取高級代碼並將其轉換為計算機代碼,即 CPU 可以理解的指令。

在某些語言中,還可以通過先前編譯的程序運行未編譯的代碼,該程序可以動態生成機器代碼。彙編是一種低級編程語言,它使用簡寫形式使開發人員能夠直接查看和控制所執行的操作。NOP 是彙編速記的一個例子。

結論

指令集是 CPU 體系結構可以運行的官方函數列表。它是可以執行的操作的列表。這些操作被硬編碼到 CPU 中,並使用它們各自的操作碼進行調用。

軟件通常使用編譯器將人類可讀的高級代碼翻譯成 CPU 可以讀取的機器代碼。有時,CPU 架構可能有未記錄的操作碼,稱為非法操作碼。非法操作碼在技術上是指令集的一部分。但是,它們可能無法在未來的平台迭代中可靠地提供。不要忘記在下面的評論中留下您的想法。



Leave a Comment

如何克隆硬碟

如何克隆硬碟

在資料是寶貴資產的現代數位時代,在 Windows 上複製硬碟對許多人來說可能是一個至關重要的過程。這份綜合指南

如何修復驅動程式 WUDFRd 在 Windows 10 上載入失敗?

如何修復驅動程式 WUDFRd 在 Windows 10 上載入失敗?

您在啟動電腦時是否遇到錯誤訊息,提示驅動程式 WUDFRd 無法在電腦上載入?

如何修復 NVIDIA GeForce Experience 錯誤代碼 0x0003

如何修復 NVIDIA GeForce Experience 錯誤代碼 0x0003

您是否在桌面上遇到 NVIDIA GeForce 錯誤代碼 0x0003?如果是,請閱讀部落格以了解如何快速輕鬆地修復此錯誤。

How to Use Auto Clicker for Chromebook

How to Use Auto Clicker for Chromebook

Today, were going to delve into a tool that can automate repetitive clicking tasks on your Chromebook: the Auto Clicker. This tool can save you time and

如何在 2023 年從 Windows PC 中移除 GPU

如何在 2023 年從 Windows PC 中移除 GPU

您需要從 PC 上卸下 GPU 嗎?和我一起在這個分步指南中解釋如何從您的 PC 中刪除 GPU。

如何在台式機和筆記本電腦中安裝 NVMe SSD

如何在台式機和筆記本電腦中安裝 NVMe SSD

買了新的 NVMe M.2 SSD 但不知道如何安裝?繼續閱讀以了解如何在筆記本電腦或台式機上安裝 NVMe SSD。

什麼是邏輯炸彈?

什麼是邏輯炸彈?

邏輯炸彈是一種安全事件,攻擊者會在其中設置延遲操作。繼續閱讀以了解更多信息。

什麼是震網?

什麼是震網?

Stuxnet 是一種自我傳播的蠕蟲病毒。這是第一次使用網絡武器,也是第一個惡意軟件實例。

什麼是道德黑客?

什麼是道德黑客?

道德黑客是在法律約束下行事的黑客。繼續閱讀以了解有關該主題的更多信息。

什麼是對稱加密?

什麼是對稱加密?

密碼學有很多不同的部分。如果你想加密一些數據,你可以使用兩種類型的算法: symmetric