divd (除双字) 指令
用途
将通用寄存器的内容除以通用寄存器的内容,将结果存储到通用寄存器中。
此指令仅应在运行 64 位应用程序的 64 位 PowerPC® 处理器上使用。
语法
| 位数 | VALUE |
|---|---|
| 0-5 | 31 |
| 6-10 | D |
| 11-15 | A |
| 16-20 | B |
| 21 | OE |
| 22-30 | 489 |
| 31 | rc |
| PowerPC64 | |
|---|---|
| divd | RT, RA, RB (OE=0 Rc=0) |
| divd。 | RT, RA, RB (OE=0 Rc=1) |
| divdo | RT, RA, RB (OE=1 Rc=0) |
| 迪夫多 | RT, RA, RB (OE=1 Rc=1) |
描述
64 位红利是 RA的内容。 64 位除数是 RB的内容。 将 64 位商放入 RT中。 因此未提供其余部分。
操作数和商都被解释为有符号整数。 The quotient is the unique signed integer that satisfies the equation-dividend = (quotient * divisor) + r, where 0 <= r < |divisor| if the dividend is non-negative, and -|divisor| < r <=0 if the dividend is negative.
如果尝试执行除法0x8000_0000_0000_0000/-1或 /0,RT的内容将无法定义,条件寄存器 0 字段中的 LT、GT 和 EQ 位的内容也是如此(如果记录位 (Rc) = 1,则divd. 或 divdo 。 指令))。 在这种情况下,如果溢出启用 (OE) = 1 ,那么将设置溢出位 (OV)。
The 64-bit signed remainder of dividing (RA) by (RB) can be computed as follows, except in the case that (RA) = -2**63 and (RB) = -1:
| 项 | 描述 | |
|---|---|---|
| divd | RT , RA 和 RB | # RT = 商 |
| mulld | RT , RT 和 RB | # RT = 商 * 除数 |
| 子 f | RT , RT 和 RA | # RT = 余数 |
参数
| 项 | 描述 |
|---|---|
| RT | 指定计算结果的目标通用寄存器。 |
| RA | 指定红利的源通用寄存器。 |
| 经常预算 | 指定除数的源通用寄存器。 |
实现
仅为 64 位实现定义此指令。 在 32 位实现上使用它将导致调用系统非法指令错误处理程序。