divs (除短) 指令

用途

将通用寄存器的内容除以通用寄存器的内容,并将结果存储在通用寄存器中。

注: divs 指令仅在 POWER ® 系列体系结构中受支持。

语法

位数 VALUE
0-5 31
6-10 RT
11-15 亚美尼亚共和国
16-20 经常预算
21  
22-30 363
31 rc
POWER ® 系列 
divs RT RA RB
divs。 RT RA RB
divso RT RA RB
divso。 RT RA RB

描述

divs 指令将通用寄存器 (GPR) RA 的内容除以 GPR RB 的内容,并将结果存储在目标 GPR RT中。 除零商或零余数始终为正数外,余数与红利具有相同的符号。 结果服从等式:


dividend = (divisor x quotient) + remainder

其中 adividend是原始 (RA) ,divisor是原始 (RB) ,quotient是 final (RT) ,并且remainder是最终 (MQ)。

对于-2**31 P -1, MQ 寄存器设置为 0 并且-2**31放置在 GPR RT中。 对于所有其他溢出,未定义 MQ,目标 GPR RT 和条件寄存器字段 0 (如果记录位 (Rc) 为 1) 的内容。

divs 指令有四种语法形式。 每种语法形式对 "条件寄存器" 字段 0 和 "定点异常寄存器" 都有不同的影响。

描述
语法表单 溢出 异常 (OE) 固定点 异常寄存器 记录 位 (RC) 条件 注册字段 0
divs 0 0
divs。 0 1 LT ,GT, EQ 和 SO
divso 1 SO 和 OV 0
divso。 1 SO 和 OV 1 LT ,GT, EQ 和 SO

divs 指令的四种语法形式从不影响定点异常寄存器中的 Carry 位 (CA)。 如果语法表单将溢出异常 (OE) 位设置为 1 ,那么该指令会影响定点异常寄存器中的摘要溢出 (SO) 和溢出 (OV) 位。 如果语法格式将记录 (Rc) 位设置为 1 ,那么指令会影响条件寄存器字段 0 中的 "小于 (LT) 0" , "大于 (GT) 0" , "等于 (EQ) 0" 和 "摘要溢出 (SO)" 位。

参数

描述
RT 指定存储操作结果的目标通用寄存器。
RA 指定用于操作的源通用寄存器。
经常预算 指定用于操作的源通用寄存器。

示例

  1. 以下代码将 GPR 4 的内容除以 GPR 6 的内容,并将结果存储在 GPR 4 中:
    
    # Assume GPR 4 contains 0x0000 0001.
    # Assume GPR 6 contains 0x0000 0002.
    divs 4,4,6
    # GPR 4 now contains 0x0.
    # The MQ Register now contains 0x1.
    
  2. 以下代码将 GPR 4 的内容除以 GPR 6 的内容,将结果存储在 GPR 4 中,并设置 "条件寄存器字段" 0 以反映操作的结果:
    
    # Assume GPR 4 contains 0x0000 0002.
    # Assume GPR 6 contains 0x0000 0002.
    divs. 4,4,6
    # GPR 4 now contains 0x0000 0001.
    # The MQ Register now contains 0x0000 0000.
    
  3. 以下代码将 GPR 4 的内容除以 GPR 6 的内容,将结果存储在 GPR 4 中,并在 "定点异常寄存器" 中设置 "摘要溢出" 和 "溢出" 位以反映操作结果:
    
    # Assume GPR 4 contains 0x0000 0001.
    # Assume GPR 6 contains 0x0000 0000.
    divso 4,4,6
    # GPR 4 now contains an undefined quantity.
    
  4. 以下代码将 GPR 4 的内容除以 GPR 6 的内容,将结果存储在 GPR 4 中,并在 "定点异常寄存器" 和 "条件寄存器" 字段 0 中设置 "摘要溢出" 和 "溢出" 位以反映操作结果:
    
    # Assume GPR 4 contains 0x-1.
    # Assume GPR 6 contains 0x0000 00002.
    # Assume the MQ Register contains 0x0000 0000.
    divso. 4,4,6
    # GPR 4 now contains 0x0000 0000.
    # The MQ register contains 0x-1.