首页/指令库/SHA512低位Sigma低32位
SHA512SIG0L

RISC-V SHA512SIG0L 指令详解

指令手册R-type

SHA-512 σ0 结果的低32位(RV32):从rs1和rs2的64位输入计算σ0并返回bits[31:0]

指令语法

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

指令行为说明

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

SHA512SIG0L 指令解析与执行动画

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

rd
rs1
rs2
sha512sig0l
,
,
执行环境

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

fixed
source
source
fixed
destination
OP
31..25
0101010
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 >> 1
0x44D5E6F7
rs1 >> 7
0x0113579B
rs1 >> 8
0x0089ABCD
rs2 << 31
0x80000000
rs2 << 25
0xCE000000
rs2 << 24
0x67000000
result
0x6C4F1AA1
架构可见结果
a0(x10) = 0x6C4F1AA1

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

快速理解与检索要点

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

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

常见使用场景

加密与密码

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

哈希算法

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

使用前检查清单

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

容易混淆 / 常见误区

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

常见问题

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

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

SHA512SIG0L 是完整算法实现吗?

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