應用程式的指令可以分為中央處理器即CPU的指令集以及用於向作業系統請求特定的服務這兩類;中央處理器操作指令的處理流程大概分為取指、譯碼、執行、存取、寫回和更新PC。
本文操作環境:windows7系統,DELL G3電腦。
理論上說,應用程式裡的指令可以分成中央處理器(CPU)的指令集以及用於向作業系統請求特定的服務這兩類。
中央處理器(CPU,Central Processing Unit)是一塊超大規模的積體電路,是電腦的運算核心(Core)和控制核心( Control Unit)。它的功能主要是解釋電腦指令以及處理電腦軟體中的資料。
中央處理器主要包括運算元(算術邏輯運算單元,ALU,Arithmetic Logic Unit)和高速緩衝記憶體(Cache)及實現它們之間聯繫的資料(Data)、控制及狀態的匯流排( Bus)。它與內部記憶體(Memory)和輸入/輸出(I/O)設備合稱為電子電腦三大核心元件。
CPU操作指令的處理流程大概分為:取指、譯碼、執行、訪存、寫回等幾步。每條指令需要1~6個位元組不等,這取決於需要哪些欄位。每條指令的第一個位元組表示指令的類型:高4位是代碼部分(例:6為整數類操作指令),低4位是功能部分(例:1為整數類中的減法指令) 61合起來即為sub指令。
處理指令流程
指令集的一個重要性質就是位元組編碼必須有唯一的解釋。任意一個位元組序列要麼是一個唯一的指令序列的編碼,要麼就不是一個合法的位元組序列。因為每條指令的第一個位元組有唯一的程式碼和功能組合,給定這個位元組,我們就可以決定所有其他附加位元組的長度和意義。
每條指令需要1~6個位元組不等,取決於需要哪些欄位。每條指令的第一個位元組表示指令的類型:高4位是代碼部分(例:6為整數類操作指令),低4位是功能部分(例:1為整數類中的減法指令) 61合起來即為sub指令。
下面是處理每個指令的流程圖:
取指(fetch)
取值階段從記憶體讀取指令位元組,放到指令記憶體(CPU中)中,位址為程式計數器(PC)的值。它按順序的方式計算當前指令的下一指令的位址(即PC的值加上已取出指令的長度)。
譯碼(decode)
ALU從暫存器檔案(通用暫存器的集合)讀入最多兩個運算元。 (即一次最多讀取兩個暫存器中的內容)
執行(execute)
在執行階段會根據指令的類型,將算數/邏輯單元(ALU)用於不同的目的。對其他指令,它會作為一個加法器來計算增加或減少棧指針,或者計算有效地址,或者只是簡單地加0,將一個輸入傳遞到輸出。
條件碼暫存器(CC)有三個條件位元。 ALU負責計算條件碼新值。當執行一條跳轉指令時,會根據條件碼和跳躍型別來計算分支訊號cnd。
存取(memory)
存取階段,資料記憶體(CPU中)讀出或寫入一個記憶體字。指令和資料記憶體存取的是相同的記憶體位置,但是用於不同的目的。
寫回(write back)
寫回階段最多可以寫兩個結果到暫存器檔案。暫存器檔案有兩個寫入埠。埠E用來寫ALU計算出來的值,而連接埠M用來寫從資料記憶體讀取的值。
更新PC(PC update)
根據指令碼和分支標誌,從前幾步所得的訊號值中,選出下一個PC的值。
更多相關知識,請造訪PHP中文網!
以上是應用程式的指令可以分成為什麼的詳細內容。更多資訊請關注PHP中文網其他相關文章!

熱AI工具

Undresser.AI Undress
人工智慧驅動的應用程序,用於創建逼真的裸體照片

AI Clothes Remover
用於從照片中去除衣服的線上人工智慧工具。

Undress AI Tool
免費脫衣圖片

Clothoff.io
AI脫衣器

Video Face Swap
使用我們完全免費的人工智慧換臉工具,輕鬆在任何影片中換臉!

熱門文章

熱工具

VSCode Windows 64位元 下載
微軟推出的免費、功能強大的一款IDE編輯器

ZendStudio 13.5.1 Mac
強大的PHP整合開發環境

MantisBT
Mantis是一個易於部署的基於Web的缺陷追蹤工具,用於幫助產品缺陷追蹤。它需要PHP、MySQL和一個Web伺服器。請查看我們的演示和託管服務。

記事本++7.3.1
好用且免費的程式碼編輯器

mPDF
mPDF是一個PHP庫,可以從UTF-8編碼的HTML產生PDF檔案。原作者Ian Back編寫mPDF以從他的網站上「即時」輸出PDF文件,並處理不同的語言。與原始腳本如HTML2FPDF相比,它的速度較慢,並且在使用Unicode字體時產生的檔案較大,但支援CSS樣式等,並進行了大量增強。支援幾乎所有語言,包括RTL(阿拉伯語和希伯來語)和CJK(中日韓)。支援嵌套的區塊級元素(如P、DIV),