1. 程式人生 > >計算機指令在CPU中的執行過程(圖文版)

計算機指令在CPU中的執行過程(圖文版)

為了瞭解指令的大概流程,下面以加法指令做以說明(引用《計算機原理》)。

指令形式: ADD EA

該指令一個隱含的運算元存在累加器(AC)中,EA為另一個運算元在主存當中的有效地址。
該指令是把AC和EA的資料相加,最後把計算的和送回AC中,即AC+EA -> AC。

1. 取指

把PC的內容(指令地址)裝入地址暫存器(AR),送上地址匯流排,由地址匯流排找到對應的主存,取出指令碼,然後通過資料匯流排將指令碼傳給CPU的指令暫存器(IR)。

2. 分析

把IR中的指令交給譯碼器譯碼,識別出這是一條AC與主存資料相加的指令,將指令中的EA輸出到地址匯流排,地址匯流排在加法指令的控制下從主存讀出資料,然後將讀出的資料通過資料匯流排送到CPU的暫存暫存器(TR)中。

在指令譯碼的同時,PC的值會加1,指向下一個指令地址。

3. 執行

將AC中的資料和TR中的資料傳入運算中心(ALU)進行加法運算,再將計算之和通過資料匯流排傳給AC,結束指令。

以上只列出最關鍵的3個步驟,其中一個指令的運算元是以直接定址的方式給出的(EA),即譯碼後可立即進行訪存操作。如果指令的運算元是由其他定址方式給出,則還需要進一步取址得出EA,再由EA去儲存器取值。