div (Divide) 指令
用途
将与 MQ Register 合并的通用寄存器的内容除以通用寄存器的内容,并将结果存储在通用寄存器中。
注: 迪夫 指令仅在 POWER ® 系列体系结构中受支持。
语法
| 位数 | VALUE |
|---|---|
| 0-5 | 31 |
| 6-10 | RT |
| 11-15 | RA |
| 16-20 | 经常预算 |
| 21 | OE |
| 22-30 | 331 |
| 31 | Rc |
描述
迪夫 指令将通用寄存器 (GPR) RA 的内容与乘商 (MQ) 寄存器的内容连接在一起,将结果除以 GPR 经常预算的内容,并将结果存储在目标 GPR 资源中。 余数具有与红利相同的符号,但零商或零余数始终是正的。 结果遵循以下公式:
dividend = (divisor x quotient) + remainder
其中 adividend是原始 (RA) | | (MQ) ,divisor是原始 (经常预算) ,quotient是最终值 (资源) ,并且remainder是最终值 (MQ)。
对于以下情况:-2**31 P -1, MQ 寄存器设置为 0 ,并且-2**31位于 GPR 资源中。 对于所有其他溢出,未定义 MQ,目标 GPR 资源和 "条件 0 字段 0" (如果记录位 (Rc) 1 1) 的内容。
迪夫 指令具有四种语法形式。 每个语法表单对 "条件 0 字段 0" 和 "定点异常寄存器" 具有不同的影响。
| 项 | 描述 | |||
|---|---|---|---|---|
| 语法表单 | 溢出 异常 (OE) | 固定点 异常寄存器 | 记录 位 (Rc) | 条件 注册字段 0 |
| div | 0 | 无 | 0 | 无 |
| 省 | 0 | 无 | 1 | LT ,GT, EQ , SO |
| 迪沃 | 1 | SO , OV | 0 | 无 |
| 迪沃 | 1 | SO , OV | 1 | LT ,GT, EQ , SO |
迪夫 指令的四种语法形式从不影响固定点异常寄存器中的 Carry 位 (CA)。 如果语法格式将 "溢出异常" (OE) 位 1 为 1 ,那么指令会影响 "定点异常" 寄存器中的 "摘要溢出" (SO) 和 "溢出" (OV) 位。 如果语法格式将记录 (Rc) 位设置为 1 , 1 指令会影响 "条件寄存器字段 0" 中的 "小于 (LT) 0" , "大于 (GT) 0" , "等于 (EQ) 0" 和 "汇总溢出 (SO)" 位。
参数
| 项 | 描述 |
|---|---|
| RT | 指定用于存储操作结果的目标通用寄存器。 |
| RA | 指定操作的源通用寄存器。 |
| 经常预算 | 指定操作的源通用寄存器。 |
示例
- 4 代码将 GPR 4 的内容 (与 MQ Register 并置) 除以 GPR 6 的内容,并将结果存储 4 GPR 4 中:
# Assume the MQ Register contains 0x0000 0001. # Assume GPR 4 contains 0x0000 0000. # Assume GPR 6 contains 0x0000 0002. div 4,4,6 # GPR 4 now contains 0x0000 0000. # The MQ Register now contains 0x0000 0001. - 以下代码将 GPR 4 的内容除以 MQ Register ,再与 GPR 6 的内容合并,将结果存储在 GPR 4 中, 0 设置 "条件寄存器字段 0" 以反映操作的结果:
# Assume the MQ Register contains 0x0000 0002. # Assume GPR 4 contains 0x0000 0000. # Assume GPR 6 contains 0x0000 0002. div. 4,4,6 # GPR 4 now contains 0x0000 0001. # MQ Register contains 0x0000 0000. - 以下代码将 GPR 4 的内容与 MQ Register 并置,并将结果放入 GPR 4 6 的内容中,并在 "定点异常寄存器" 中设置 "汇总溢出" 和 "溢出" 位以反映操作的结果:
# Assume GPR 4 contains 0x0000 0001. # Assume GPR 6 contains 0x0000 0000. # Assume the MQ Register contains 0x0000 0000. divo 4,4,6 # GPR 4 now contains an undefined quantity. # The MQ Register is undefined. - 以下代码将 GPR 4 的内容与 MQ Register (GPR 6 的内容 4 6) 放在 GPR 4 中,并在 "定点异常寄存器" 和 "0 寄存器字段 0" 中设置 "摘要溢出" 和 "溢出" 位以反映操作的结果:
# Assume GPR 4 contains 0x-1. # Assume GPR 6 contains 0x2. # Assume the MQ Register contains 0xFFFFFFFF. divo. 4,4,6 # GPR 4 now contains 0x0000 0000. # The MQ Register contains 0x-1.