您好,登錄后才能下訂單哦!
小編給大家分享一下計算機中應用程序里的指令可以分成向操作系統請求特定的服務和什么,相信大部分人都還不怎么了解,因此分享這篇文章給大家參考一下,希望大家閱讀完這篇文章后大有收獲,下面讓我們一起去了解一下吧!
理論上說,應用程序里的指令可以分成用于向操作系統請求特定的服務和中央處理器(CPU)的指令集。CPU操作指令的處理流程大概分為:取指、譯碼、執行、訪存、寫回等幾步;每條指令需要1~6個字節不等,這取決于需要哪些字段。
理論上說,應用程序里的指令可以分成中央處理器(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的值。
以上是“計算機中應用程序里的指令可以分成向操作系統請求特定的服務和什么”這篇文章的所有內容,感謝各位的閱讀!相信大家都有了一定的了解,希望分享的內容對大家有所幫助,如果還想學習更多知識,歡迎關注億速云行業資訊頻道!
免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。