stfdux (Store Floating-Point Double with Update Indexer) 指令
用途
将数据的双字存储在内存中的指定位置,在某些情况下,将地址放在通用寄存器中。
语法
| 位数 | VALUE |
|---|---|
| 0 - 5 | 31 |
| 6 - 10 | 财务报告准则 |
| 11 - 15 | 亚美尼亚共和国 |
| 16 - 20 | 经常预算 |
| 21 - 30 | 759 |
| 31 | / |
描述
stfdux 指令将浮点寄存器 (FPR) FRS 的内容存储到由有效地址 (EA) 寻址的双字存储器中。
如果通用寄存器 (GPR) RA 不是 0 ,那么 EA 是 GPRs RA 和 RB的内容总和。 如果 GPR RA 为 0 ,那么 EA 是 GPR RB的内容。
如果 GPR RA 不等于 0 ,并且存储器访问不会导致对齐中断或数据存储器中断,那么 EA 将存储在 GPR RA中。
stfdux 指令有一种语法形式,不影响浮点状态和控制寄存器或条件寄存器字段 0。
参数
| 项 | 描述 |
|---|---|
| 财务报告准则 | 指定存储数据的源浮点寄存器。 |
| RA | 指定用于 EA 计算和可能的地址更新的源通用寄存器。 |
| 经常预算 | 指定用于 EA 计算的源通用寄存器。 |
示例
以下代码将 FPR 6 的内容存储到内存中的某个位置,并将地址存储在 GPR 4 中:
.csect data[rw]
buffer: .long 0,0,0,0
# Assume FPR 6 contains 0x9000 3000 9000 3000.
# Assume GPR 4 contains 0x0000 0008.
# Assume GPR 5 contains the address of buffer.
.csect text[pr]
stfdux 6,4,5
# buffer+8 now contains 0x9000 3000 9000 3000.
# GPR 4 now contains the address of buffer+8.