doz (差异或零) 指令
用途
计算两个通用寄存器的内容之间的差异,并将结果或值零存储在通用寄存器中。
注: doz 指令仅在 POWER ® 系列体系结构中受支持。
语法
| 位数 | VALUE |
|---|---|
| 0-5 | 31 |
| 6-10 | RT |
| 11-15 | 亚美尼亚共和国 |
| 16-20 | 经常预算 |
| 21 | OE |
| 22-30 | 264 |
| 31 | rc |
描述
doz 指令添加通用寄存器 (GPR) RA, 1 的内容和 GPR RB 的内容的补充,并将结果存储在目标 GPR RT中。
如果 GPR RA 中的值代数大于 GPR RB中的值,那么 GPR RT 设置为 0。
doz 指令有四种语法形式。 每种语法形式对 "条件寄存器" 字段 0 和 "定点异常寄存器" 都有不同的影响。
| 项 | 描述 | |||
|---|---|---|---|---|
| 语法表单 | 溢出 异常 (OE) | 固定点 异常寄存器 | 记录 位 (RC) | 条件 注册字段 0 |
| doz | 0 | 无 | 0 | 无 |
| doz。 | 0 | 无 | 1 | LT ,GT, EQ 和 SO |
| 多佐 | 1 | SO 和 OV | 0 | 无 |
| dozo。 | 1 | SO 和 OV | 1 | LT ,GT, EQ 和 SO |
doz 指令的四种语法形式从不影响定点异常寄存器中的 Carry 位 (CA)。 如果语法表单将溢出异常 (OE) 位设置为 1 ,那么指令会影响定点异常寄存器中的摘要溢出 (SO) 和溢出 (OV) 位; 只能在正溢出时设置溢出 (OV) 位。 如果语法格式将 "记录 (Rc)" 位设置为 1 ,那么指令将影响 "条件寄存器" 字段中的 "小于 (LT) 0" , "大于 (GT) 0" , "等于 (EQ) 0" 和 "摘要溢出 (SO)" 位 0。
参数
| 项 | 描述 |
|---|---|
| RT | 指定存储操作结果的目标通用寄存器。 |
| RA | 指定用于操作的源通用寄存器。 |
| 经常预算 | 指定用于操作的源通用寄存器。 |
示例
- 以下代码确定 GPR 4 和 GPR 6 的内容之间的差异,并将结果存储在 GPR 4 中:
# Assume GPR 4 holds 0x0000 0001. # Assume GPR 6 holds 0x0000 0002. doz 4,4,6 # GPR 4 now holds 0x0000 0001. - 以下代码确定 GPR 4 和 GPR 6 的内容之间的差异,将结果存储在 GPR 4 中,并设置 "条件寄存器字段" 0 以反映操作结果:
# Assume GPR 4 holds 0x0000 0001. # Assume GPR 6 holds 0x0000 0000. doz. 4,4,6 # GPR 4 now holds 0x0000 0000. - 以下代码确定 GPR 4 和 GPR 6 的内容之间的差异,将结果存储在 GPR 4 中,并在 "定点异常寄存器" 中设置 "摘要溢出" 和 "溢出" 位以反映操作结果:
# Assume GPR 4 holds 0x0000 0002. # Assume GPR 6 holds 0x0000 0008. dozo 4,4,6 # GPR 4 now holds 0x0000 0006. - 以下代码确定 GPR 4 和 GPR 6 的内容之间的差异,将结果存储在 GPR 4 中,并在 "定点异常寄存器" 和 "条件寄存器" 字段 0 中设置 "摘要溢出" 和 "溢出" 位以反映操作结果:
# Assume GPR 4 holds 0xEFFF FFFF. # Assume GPR 6 holds 0x0000 0000. dozo. 4,4,6 # GPR 4 now holds 0x1000 0001.