SHA256SIG1 的寄存器宽度是什么?
sha256sig1 读取一个整数源寄存器,按固定公式计算 SHA-256 σ1,再写入 rd。输入字和变换结果均为 32 位;RV64 忽略源高 32 位,并将结果符号扩展到 64 位。
SHA-256 σ1:ROTR32(x,17) ⊕ ROTR32(x,19) ⊕ (x >> 10)
语法为 sha256sig1 rd, rs1;只有两个整数寄存器操作数,选择 x0–x31 或 ABI 名称。
32 位 OP-IMM 编码:bits 31..20=000100000011、funct3=001、opcode=0010011;没有汇编立即数。
RV32/RV64 Zknh(也包含于 Zkn/Zk);只变换源低 32 位,RV64 将 32 位结果符号扩展到 64 位。
x0 源恒为 0,写入 x0 被丢弃;rd=rs1 时先读取原始源值。本指令必须具有数据无关执行延迟。
sha256sig1 是 Zknh 扩展的 SHA-256 σ1 变换:σ1(x) = ROTR32(x,17) ⊕ ROTR32(x,19) ⊕ (x >> 10)。在 RV32/RV64 定义,x = X(rs1)[31:0];RV64 忽略源高 32 位,并将 32 位结果符号扩展后写入 rd。这些变换也适用于 SHA2-224。循环右移限于输入字宽,>> 是补零的逻辑右移。
受限教学输入直接执行官方 SHA-256 固定宽度位运算;不表示完整算法或微架构。
执行前 rd=rs1 时共用源值,否则演示初值 rd=0;rs1=x0 时始终读取 0。 SHA256SIG1 在 RV32/RV64 定义;RV64 仅取 X(rs1)[31:0],并将 32 位结果符号扩展到 XLEN。
动画只展示官方 ISA 字段和架构状态;不表示完整哈希算法、流水线、缓存或时序实现。
sha256sig1 读取一个整数源寄存器,按固定公式计算 SHA-256 σ1,再写入 rd。输入字和变换结果均为 32 位;RV64 忽略源高 32 位,并将结果符号扩展到 64 位。
RV32/RV64 Zknh,x11=1:sha256sig1 x10, x11 按本页固定公式得到 x10=0x0000A000。RV64 将该 32 位结果符号扩展;本例最高位为 0。
sha256sig1 读取一个整数源寄存器,按固定公式计算 SHA-256 σ1,再写入 rd。输入字和变换结果均为 32 位;RV64 忽略源高 32 位,并将结果符号扩展到 64 位。
不是。汇编语法是 sha256sig1 rd, rs1;bits 31..20 选择此变换,不能作为算术立即数修改或符号扩展。