跳转到内容

360 汇编/360 指令/ALR

来自维基教科书,开放的书本,开放的世界

ALR - 添加逻辑寄存器 - 操作码 1E

ALR 2,1

具体的语法是

ALR 目标寄存器, 源寄存器.
RR 指令 (2 字节)
字节 1 字节 2
目标寄存器 源寄存器
(8 位)
操作码
1E
(4 位)

0..F
(4 位)

0..F
  • 第一个参数是目标寄存器,其值受指令影响。
  • 第二个参数是源值寄存器。

可用性

[编辑 | 编辑源代码]

ALR 指令在所有 360、370 和 z/System 机型上可用。

ALR 指令从第二个参数指定的寄存器中读取 32 位整数,并将其添加到第一个参数指定的寄存器的值。33 位结果和的最低有效 32 位被放置到目标寄存器。程序状态字中的条件代码字段根据结果值(和)进行更改,该值被视为无符号整数(见下文)。

由于这是一个 32 位指令,在 zSystem 上,寄存器的高 32 位不受影响。

条件代码

[编辑 | 编辑源代码]

如果和不为零,则 PSW 的 CC 字段的最低有效位被设置为 1,否则被清除。PSW 的 CC 字段的最高有效位保留进位位(即 33 位和的最高有效位)。

异常和故障

[编辑 | 编辑源代码]

无。

AL 和 ALR 指令对于实现长度超过 32 位的整数加法很有用。在这种情况下,应该使用 AL 或 ALR 来计算和的所有部分(可能除了最高有效的部分),并且,如果在加法之后 CC 为 2 或 3(即发生了进位),则增加最近的更高的部分。

[edit | edit source]

16 位

[edit | edit source]
  • 要添加半字,请参阅 AH
  • 要减去半字,请参阅 SH

32 位

[edit | edit source]
  • 要从内存中添加逻辑字值,请参阅 AL
  • 要从内存中添加带符号值,请参阅 A
  • 要从寄存器中添加带符号值,请参阅 AR
  • 要减去逻辑值,请参阅 SLSLR
  • 要减去带符号值,请参阅 SRS

浮点数

[edit | edit source]
  • 要添加浮点数,请参阅 AEAERADADR

条件码

[edit | edit source]
  • 要检查条件码,请参阅 BCBCR
上一条指令
ALGR
360 汇编指令
{{{name}}}
下一条指令
AP
上一个操作码
1D
下一个操作码
1F
360 汇编语言
360 系列 简介 · 基本常见问题解答 · 360 系列 · 360 架构
360 指令集 360 指令 · 分支指令 · 数据传输指令 · 控制流指令 · 算术指令 · 逻辑指令 · 移位和旋转指令 · 特权指令 · 其他指令
语法和汇编器 360 汇编器· 伪指令
指令扩展 浮点数 · 高级语言


华夏公益教科书