360 彙編/360 指令/BCTR
外觀
BC - 按計數分支 - RX 型別指令 - 操作碼 46
BCTR 2,4 BCTR 15,3 BCTR 7,8 BCTR 1,0 - Value in register 1 is decremented, but no branch will occur
| RR 指令(2 位元組) | |||
| 位元組 1 位 (0-7) |
位元組 2 | ||
|
目標暫存器 (8-11) |
分支暫存器 (12-15) | ||
| (以十六進位制) | 操作碼 06 |
(4 位) 0..F / (十進位制 0..15) |
(4 位) 0..F / (十進位制 0..15) |
- 第一個引數是目標暫存器,其值受指令影響。
- 第二個引數是分支暫存器,其內容將用作要轉移到的位置(如果引數不為零)。
- 目標暫存器和分支暫存器的值為 0 到 15。
- BCTR 1,9
BCTR 指令在所有型號上都可用。
BCTR 指令從第一個引數中指定的 target 暫存器的值中減去 1。如果減法後 target 暫存器中的值為零(或 branch 暫存器為 0),則不發生分支。否則,程式將分支到第二個引數中指定的 branch 暫存器中包含的地址。請注意,如果減法之前 target 暫存器中的結果為 0,則結果為負 1,並且會發生分支(除非 branch 暫存器為 0)。如果 target 暫存器中的值為最小可能值,則發生的溢位將被忽略,target 暫存器中的結果為最大可能值,並且會發生分支(除非 branch 暫存器為 0)。BCTR 0,0 指令等效於將暫存器 0 減 1。
要執行迴圈語句,其中從 target 暫存器中包含的值中減去 1,如果結果不為 0,則應分支到 branch 暫存器中包含的地址。
作為第一個引數指定的暫存器中包含的值減少 1。如果 branch 暫存器為 0,或者減去 target 暫存器中值的後的值為 0,則執行將繼續執行此指令後的指令。否則,執行將轉移到作為第二個引數指定的暫存器中包含的地址。
條件碼不會改變。如果值為最小可能值並且溢位到最大值,則會忽略它。
- branch 暫存器中包含的目標地址不能為奇數,否則會發生操作異常
- branch 暫存器中包含的目標地址必須在有效記憶體範圍內,否則會發生操作異常。
- 目標地址的儲存金鑰必須與當前程序相同(或者此程序的金鑰必須為 0),否則會發生記憶體保護違反異常。
- 該BCT指令提供相同的功能,但分支地址以索引基址-位移格式指定。
| 上一個指令 BCR |
360 彙編指令 | 下一個指令 BCTG |
| 上一個操作碼 45 |
下一個操作碼 47 |
| 360 組合語言 | |
| 360 系列 | 介紹 · 基本常見問題解答 · 360 系列 · 360 架構 |
|---|---|
| 360 指令集 | 360 指令 · 分支指令 · 資料傳輸指令 · 控制流指令 · 算術指令 · 邏輯指令 · 移位和旋轉指令 · 特權指令 · 其他指令 |
| 語法和彙編器 | 360 彙編器· 偽指令 |
| 指令擴充套件 | 浮點數 · 高階語言 |
| 此頁面或部分是未開發的草稿或大綱。 您可以幫助開發作品,或者您可以在專案室中尋求幫助。 |