程序轉移控制類指令,用來控制指令執行的順序

這類指令主要用來控制指令執行的順序,即控制程序的流程,比如在什麼情況下程序需要進行轉移,往何處轉移等。不同的機種在程序控制指令的設置上差別比較大。不過,幾乎所有的機器都設置轉移類指令,包括無條件轉移、條件轉移、轉子程序和程序自中斷指令等。

另外還有一些針對程序狀態字的指令、對指令進行分析或對指令含義作解釋的指令,以及用來控制處理機某些功能的指令等,均屬控制類範疇。

程序轉移控制類指令,用來控制指令執行的順序

下面主要對轉移類指令作簡要介紹。

1.轉移指令

轉移指令分為無條件轉移和條件轉移兩種類型。

(1)無條件轉移指令帶有強迫性,程序執行到這條指令時就無條件地轉移到指令所指明的地址。因此指令的設置很簡單,除操作碼外只需給出轉移地址(包括尋址方式)。

(2)條件轉移指令主要用於程序的分支結構。當程序執行到某處時,可能要在兩條通路中選擇一條,甚至可能在n條通路中進行選擇,這就需要根據某些測試條件作出判斷。例如,判斷運算結果是為零、為正或為負;判斷兩個數相等或不等;判斷某位的狀態是l還是0等。

程序轉移控制類指令,用來控制指令執行的順序

另外,循環指令可看做特殊的條件轉移指令,它根據循環計數值控制某條指令或某段指令序列重複執行若干次。循環指令實現的操作包括修改計數值、測試計數值、根據測試判斷的結果控制轉到目標地址繼續循環或者退出循環等。因此,執行一條循環指令相當於執行計數、比較、測試、轉移等幾條指令。

無條件轉移和條件轉移指令均需要考慮轉移的範圍。

程序轉移控制類指令,用來控制指令執行的順序


分享到:


相關文章: