stbu (带有更新的存储字节) 指令
用途
将来自通用寄存器的数据字节存储到内存中的指定位置,并可能将该地址放在另一个通用寄存器中。
语法
| 位数 | VALUE |
|---|---|
| 0 - 5 | 39 |
| 6 - 10 | RS |
| 11 - 15 | 亚美尼亚共和国 |
| 16 - 31 | D |
描述
stbu 指令将源通用寄存器 (GPR) RS 的位 24-31 存储到由有效地址 (EA) 寻址的存储器中的字节中。
如果 GPR RA 不是 0 ,那么 EA 是 GPR RA 和 D的内容总和, 16 位符号 2 的补码整数符号扩展为 32 位。 如果 GPR RA 为 0 ,那么 EA 为 D。
如果 RA 不等于 0 ,并且存储器访问不会导致对齐中断,那么 EA 将存储在 GPR RA中。
stbu 指令有一种语法形式,不影响定点异常寄存器或条件寄存器字段 0。
参数
| 项 | 描述 |
|---|---|
| RS | 指定存储数据的源通用寄存器。 |
| 深 | 指定 16 位,有符号 2 的补码整数符号-扩展为 32 位,用于 EA 计算。 |
| RA | 指定用于 EA 计算和可能的地址更新的源通用寄存器。 |
示例
以下代码将 GPR 6 的位 24-31 存储到内存中的某个位置,并将地址放在 GPR 16 中:
.csect data[rw]
buffer: .long 0
# Assume GPR 6 contains 0x0000 0060.
# Assume GPR 16 contains the address of csect data[rw].
.csect text[pr]
stbu 6,buffer(16)
# GPR 16 now contains the address of buffer.
# 0x60 is stored at the address of buffer.