subfe 或 sfe (从扩展中减去) 指令

用途

将一个普通用途寄存器的内容补充到另一个普通用途寄存器的总和中,然后添加定点异常寄存器位的值,并将结果存储在第三个普通用途寄存器中。

语法

位数 VALUE
0 - 5 31
6 - 10 RT
11 - 15 亚美尼亚共和国
16 - 20 经常预算
21 OE
22 - 30 136
31 rc
PowerPC® 
子字段 RT RA RB
subfe。 RT RA RB
子功能 RT RA RB
subfeo。 RT RA RB
POWER ® 系列 
sfe RT RA RB
sfe。 RT RA RB
sfeo RT RA RB
斯费奥 RT RA RB

描述

subfesfe 指令添加定点异常寄存器位的值,通用寄存器 (GPR) RB的内容以及 GPR RA 内容的补充,并将结果存储在目标 GPR RT中。

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

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

描述
语法表单 溢出 异常 (OE) 固定点 异常寄存器 记录 位 (RC) 条件 注册字段 0
子字段 0 CA 0
subfe。 0 CA 1 LT ,GT, EQ 和 SO
子功能 1 SO , OV 和 CA 0
subfeo。 1 SO , OV 和 CA 1 LT ,GT, EQ 和 SO
sfe 0 CA 0
sfe。 0 CA 1 LT ,GT, EQ 和 SO
sfeo 1 SO , OV 和 CA 0
斯费奥 1 SO , OV 和 CA 1 LT ,GT, EQ 和 SO

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

参数

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

示例

  1. 以下代码添加了 GPR 4 的内容补码, GPR 10 的内容以及定点异常寄存器位的值,并将结果存储在 GPR 6 中:
    
    # Assume GPR 4 contains 0x9000 3000.
    # Assume GPR 10 contains 0x8000 7000.
    # Assume the Carry bit is one.
    subfe 6,4,10
    # GPR 6 now contains 0xF000 4000.
    
  2. 以下代码添加了 GPR 4 的内容补充, GPR 10 的内容以及定点异常寄存器位的值,将结果存储在 GPR 6 中,并设置 "条件寄存器" 字段 0 以反映操作结果:
    
    # Assume GPR 4 contains 0x0000 4500.
    # Assume GPR 10 contains 0x8000 7000.
    # Assume the Carry bit is zero.
    subfe. 6,4,10
    # GPR 6 now contains 0x8000 2AFF.
    
  3. 以下代码添加了 GPR 4 的内容补充, GPR 10 的内容以及定点异常寄存器 Carry 位的值,将结果存储在 GPR 6 中,并在定点异常寄存器中设置 Summary Overflow , Overflow 和 Carry 位以反映操作结果:
    
    # Assume GPR 4 contains 0x8000 0000.
    # Assume GPR 10 contains 0xEFFF FFFF.
    # Assume the Carry bit is one.
    subfeo 6,4,10
    # GPR 6 now contains 0x6FFF FFFF.
    
  4. 以下代码添加了 GPR 4 的内容补集, GPR 10 的内容以及定点异常寄存器位的值,将结果存储在 GPR 6 中,并在定点异常寄存器和条件寄存器字段 0 中设置 "摘要溢出" , "溢出" 和 "Carry 位" 以反映操作结果:
    
    # Assume GPR 4 contains 0x8000 0000.
    # Assume GPR 10 contains 0xEFFF FFFF.
    # Assume the Carry bit is zero.
    subfeo. 6,4,10
    # GPR 6 now contains 0x6FFF FFFE.