abs (绝对) 指令

用途

采用普通用途寄存器内容的绝对值,并将结果放入另一个普通用途寄存器中。

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

语法

位数 VALUE
0 - 5 31
6 - 10 RT
11 - 15 RA
16 - 20 ///
21 OE
22 - 30 360
31 rc
POWER ® 系列 
ABS 资源, RA
abs。 资源, RA
阿布索 资源, RA
阿布索 资源, RA

描述

abs 指令将通用寄存器 (GPR) 的内容的绝对值 RA 放置到目标 GPR 资源中。

如果 GPR RA 包含最负的数字 ('8000 0000') ,那么指令的结果是最负的数字,并且 1 OE 位设置为 1 ,那么指令会将 "定点异常寄存器" 中的溢出 1 设置为 1。

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

描述
语法表单 溢出异常 (OE) 定点异常寄存器 记录 位 (Rc) 条件 注册字段 0
ABS 0 0
abs。 0 1 LT ,GT, EQ , SO
阿布索 1 SO , OV 0
阿布索 1 SO , OV 1 LT ,GT, EQ , SO

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

参数

描述
RT 指定在其中存储操作结果的目标通用寄存器。
RA 指定操作的源通用寄存器。

示例

  1. 以下代码获取 GPR 4 的内容的绝对值,并将结果存储在 GPR 6 中:
    
    # Assume GPR 4 contains 0x7000 3000.
    abs 6,4
    # GPR 6 now contains 0x7000 3000.
    
  2. 以下代码采用 GPR 4 的内容的绝对值,将结果存储 6 GPR 6 中,并设置 0 条件寄存器字段 0 " 以反映操作的结果:
    
    # Assume GPR 4 contains 0xFFFF FFFF.
    abs. 6,4
    # GPR 6 now contains 0x0000 0001.
    
  3. 以下代码采用 GPR 4 的内容的绝对值,将结果存储在 GPR 6 中,并在 "定点异常寄存器" 中设置 "摘要溢出" 和 "溢出" 位以反映操作的结果:
    
    # Assume GPR 4 contains 0xB004 3000.
    abso 6,4
    # GPR 6 now contains 0x4FFB D000.
    
  4. 以下代码采用 GPR 4 的内容的绝对值,将结果存储在 GPR 6 中,并在 "定点异常寄存器" 和 0 寄存器字段 0 "中设置" 摘要溢出 "和" 溢出 " 位以反映操作的结果:
    
    # Assume GPR 4 contains 0x8000 0000.
    abso. 6,4
    # GPR 6 now contains 0x8000 0000.