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 汇编器· 伪指令 |
指令扩展 | 浮点数 · 高级语言 |
此页面或部分是未开发的草稿或大纲。 您可以帮助开发作品,或者您可以在项目室中寻求帮助。 |