srw 或 sr (Shift Right Word) 指令

用途

将通用寄存器的内容向左旋转指定的位数,并将掩盖的结果放入通用寄存器中。

语法

位数 VALUE
0 - 5 31
6 - 10 RS
11 - 15 亚美尼亚共和国
16 - 20 经常预算
21 - 30 536
31 rc
PowerPC® 
RA RS RB
斯鲁 RA RS RB
POWER ® 系列 
sr RA RS RB
sr. RA RS RB

描述

srwsr 指令将源通用寄存器 (GPR) RS 的内容向左旋转 32 减去 N 位,其中 N 是以 GPR RB的位 27 到 31 为单位指定的移位量,并将旋转的字和生成的掩码的逻辑 AND 存储在 GPR RA中。

使用 srwsr 指示信息时,请考虑以下事项:

  • 如果 GPR RB 的位 26 为 0 ,那么将生成后跟 32- N 个 1 的掩码 N 个零。
  • 如果 GPR RB 的位 26 为 1 ,那么将生成全零掩码。

srwsr 指令各有两种语法形式。 每种语法形式对条件寄存器字段 0 都有不同的影响。

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

sr 指令的两种语法形式和 srw 指令的两种语法形式永远不会影响定点异常寄存器。 如果语法格式将记录 (Rc) 位设置为 1 ,那么这些指令将影响条件寄存器字段 0 中的 "小于 (LT) 0" , "大于 (GT) 0" , "等于 (EQ) 0" 和 "摘要溢出 (SO)" 位。

参数

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

示例

  1. 以下代码将 GPR 4 的内容向左旋转 28 位,并将使用生成的掩码对旋转的数据进行 AND 运算的结果存储在 GPR 6 中:
    
    # Assume GPR 4 contains 0x9000 3000.
    # Assume GPR 5 contains 0x0000 0024.
    srw 6,4,5
    # GPR 6 now contains 0x0000 0000.
    
  2. 以下代码将 GPR 4 的内容向左旋转 28 位,将旋转的数据与生成的掩码进行 AND 运算的结果存储在 GPR 6 中,并设置 "条件寄存器字段" 0 以反映操作结果:
    
    # Assume GPR 4 contains 0xB004 3001.
    # Assume GPR 5 contains 0x0000 0004.
    srw. 6,4,5
    # GPR 6 now contains 0x0B00 4300.
    # Condition Register Field 0 now contains 0x4.