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 位实现上使用它将导致调用系统非法指令错误处理程序。