首页/指令库/SHA512高位Sigma低32位
SHA512SIG1L

RISC-V SHA512SIG1L 指令详解

指令手册R-type

SHA-512 σ1 结果的低32位(RV32):计算σ1(x)并返回bits[31:0]

指令语法

sha512sig1l rd, rs1, rs2
操作数说明
目标寄存器 rd:存放运算结果的通用寄存器。
源寄存器 rs1:第一个操作数寄存器。
源寄存器 rs2:第二个操作数寄存器。
Zknh加密与密码

指令行为说明

sha512sig1l 是 SHA-512 σ1 低半指令(仅 RV32)。它读取 rs1 作为 64 位输入的低 32 位、rs2 作为高 32 位,并按官方 RV32 公式计算结果低 32 位写入 rd。完整变换的官方序列先用 sha512sig1l t0, low, high,再用 sha512sig1h t1, high, low。

SHA512SIG1L 指令解析与执行动画

按官方 RV32 公式计算一个 SHA-512 Sigma 结果字。

rd
rs1
rs2
sha512sig1l
,
,
执行环境

XLEN 固定为 32。低半形式:rs1 是输入低 32 位,rs2 是输入高 32 位。

fixed
source
source
fixed
destination
OP
31..25
0101011
24..20
rs2=x12
19..15
rs1=x11
14..12
000
11..7
rd=x10
6..0
0110011
执行数据路径
X(rs1)[31:0]
0x89ABCDEF
X(rs2)[31:0]
0x01234567
rs1 << 3
0x4D5E6F78
rs1 >> 6
0x0226AF37
rs1 >> 19
0x00001135
rs2 >> 29
0x00000000
rs2 << 26
0x9C000000
rs2 << 13
0x68ACE000
result
0xBBD4317A
架构可见结果
a0(x10) = 0xBBD4317A

动画只展示官方 ISA 字段和架构状态;不表示完整哈希算法或微架构。

快速理解与检索要点

SHA512SIG1L 是 Zknh 标量密码指令,SHA-512 RV32 拆分变换。页面内容按官方标量密码扩展校对,避免把算法轮函数、密钥调度和寄存器来源混淆。

sha512sig1l 是 RV32 上计算 SHA-512 64 位 sigma 结果的一半,需要与对应 h/l 指令配对使用。
标量密码指令使用整数 X 寄存器,官方要求相关密码指令以数据无关执行延迟实现。
RV32 SHA-512 拆分形式需要按官方 h/l 或反向源寄存器序列组合出完整 64 位结果。

常见使用场景

加密与密码

结合 «sha512sig1l a0, a1, a2» 等实际代码理解该场景。

哈希算法

结合 «sha512sig1l a0, a1, a2» 等实际代码理解该场景。

使用前检查清单

语法检查
  • 确认 rd、rs1、rs2(及 rs3)是合法 GPR。
  • 确认 funct3 与 funct7 字段编码正确。
语义检查
  • 确认结果是否会影响后续分支或地址计算。
  • 确认 rd 寄存器不会被其他指令覆盖。

容易混淆 / 常见误区

仅适用于 RV32。对 L 形式,rs1=输入低32位,rs2=输入高32位;这与 H 形式相反。
必须与 sha512sig1h 配对使用。

常见问题

SHA512SIG1L 使用浮点或向量寄存器吗?

不使用。标量密码扩展的这些指令使用整数 X 寄存器。

SHA512SIG1L 是完整算法实现吗?

不是。它只计算 SHA-512 σ1 结果的一个 RV32 字;完整变换需按手册给出的 L/H 配对序列组合。