程式控制指令

程式控制指令

程式控制指令也稱轉移指令。執行程式時,有時機器執行到某條指令時,出現了幾種不同結果,這時機器必須執行一條轉移指令,根據不同結果進行轉移,從而改變程式原來執行的順序。這種轉移指令稱為條件轉移指令。除各種條件轉移指令外,還有無條件轉移指令、轉子程式指令、返回主程式指令、中斷返回指令等。 轉移指令的轉移地址一般採用直接定址相對定址方式來確定。

基本介紹

  • 中文名:程式控制指令
  • 所屬領域:計算機
  • 別稱:轉移指令
  • 主要種類:三種
主要分類,轉移指令,調用返回指令,

主要分類

主要包括三類,轉移指令(包括無條件轉移和有條件轉移)、程式調用和返回指令,循環控制指令。其中,前兩類指令在一般計算機中是必備的。最後一類指令用於對循環程式進行最佳化。

轉移指令

中的無條件轉移指令通常有兩種:一種是局部無條件,採用相對定址方式,轉移範圍一般在+127到-128之間;另一種是全局無條件轉移,可以在整個定址空間內轉移。
條件轉移指令條件轉移指令所依據的轉移條件主要有:全零(Z)、正負號(N)、進位(C)、溢出(V)及它們的組合等。主要條件轉移指令有:
BEQ 等於零轉移
BNEQ 不等於零轉移
BLS小於轉移
BGT 大於轉移
BLEQ 小於等於轉移,或不大於轉移
BGEQ 大於等於轉移,或不小於轉移
BLSU 不帶符號小於轉移
BGTU 不帶符號大於轉移
BLEQU 不帶符號小於等於轉移,或不帶符號不大於轉移
BGEQU 不帶符號大於等於轉移,或不帶符號不小於轉移
BCC 沒有進位轉移
BCS 有進位轉移
BVC 沒有溢出轉移
BVS 有溢出轉移

調用返回指令

第二類程式控制操作是程式調用和返回指令,主要有兩條:
CALL 轉入子程式
RETURN 從子程式返回
這兩條指令本身可以帶有條件,當測試條件滿足時轉入子程式或從子程式返回,也可以不帶條件。如果調用和返回指令本身不帶條件,則要與條件轉移指令聯合使用,如果本身帶有條件,目標程式就可以簡化
在執行調用指令,要保存硬體現場(主要指程式計數器處理機狀態字)和軟體程式現場(指在子程式中要使用的通用暫存器等);當從子程式返回時,再恢復這些現場。在設定有系統棧的計算機中,硬體現場和程式現場可以壓入堆疊。如果沒有設定堆疊,則要在主存儲器中開闢出一塊專門的區域或指定專門的通用暫存器來保存硬體現場。而軟體程式現場的保存則由程式設計師自行決定。
另外中斷控制指令和自陷指令(或稱為過程調用指令)也屬於程式調用指令。中斷控制指令主要有:開中斷、關中斷、改變禁止狀態、從中斷程式返回等指令。自陷指令主要用來轉入例行子程式,或在程式調式過程中用來設定斷點

相關詞條

熱門詞條

聯絡我們