360 汇编/360 指令/S
外观
S - 加 - 操作码 5B
- S 2,N2
- S 11,106(0,10)
具体语法是
- S 目标寄存器, 偏移量 (索引寄存器, 基址寄存器)
如果使用了USING 伪指令,并且目标地址标签在某个基址寄存器值的 4096 字节范围内,则汇编程序将自动确定偏移量、索引寄存器和基址寄存器的值。
RX 指令 (4 字节) | ||||||
字节 1 | 字节 2 | 字节 3 和 4 | ||||
目标寄存器 | 源地址 | |||||
(8 位) 操作码 5B |
(4 位) 0..F |
(4 位) 索引 寄存器 0..F |
(4 位) 基址 寄存器 0..F |
(12 位) 偏移量 0..FFF |
- 第一个参数是目标寄存器,其值受指令影响。
- 第二个参数是源值位置。
- 掩码、基址寄存器和索引寄存器的值为 0 到 15。偏移量值为 0 到 4095。
S 指令在 360、370 和 z/System 的所有型号上都可用。
S 指令从参数指定的内存地址读取 32 位整数,然后从第一个参数指定的寄存器值中减去它。第一个参数指定的寄存器在指令执行后保存操作结果。程序状态字中的条件码字段根据结果值进行更改。
源参数地址应与字边界对齐(即 4 字节)。
如果发生有符号整数溢出,即差值不在 -2**31 和 2**31-1 之间,则 CC 设置为 3。否则,如果差值分别等于零、小于零或大于零,则 CC 设置为 0、1 或 2。
- 如果检测到有符号整数溢出并且 PSW 中的第 36 位被设置,则会发生操作异常。
- 目标地址必须在有效内存范围内,否则会发生操作异常。
- 目标地址的存储键必须与当前进程相同,否则会发生内存保护违规异常。
- 要从寄存器减去值,请参见SR。
- 要从内存减去半字值,请参见SH。
- 要根据无符号算术减去值并设置条件码,或者减去多字整数值的最高有效部分,请参见SL 或 SLR。
- 要减去浮点值,请参见SE、SER、SD 或 SDR。
- 要添加整数,请参见A、AR、AH、AL 或 ALR。
- 要检查条件码,请参见BC 或 BCR。
上一条指令 RSCH |
360 汇编指令 {{{name}}} |
下一条指令 SAC |
上一条操作码 5A |
下一条操作码 5C |
360 汇编语言 | |
360 系列 | 简介 · 基本常见问题解答 · 360 系列 · 360 架构 |
---|---|
360 指令集 | 360 指令 · 分支指令 · 数据传输指令 · 控制流指令 · 算术指令 · 逻辑指令 · 移位和旋转指令 · 特权指令 · 其他指令 |
语法和汇编程序 | 360 汇编程序· 伪指令 |
指令扩展 | 浮点数 · 高级语言 |