AES32ESMI 使用浮点或向量寄存器吗?
不使用。标量密码扩展的这些指令使用整数 X 寄存器。
AES 加密中间轮字节步骤:从 rs2 按 bs 选字节,SubBytes/MixColumns 后与 rs1 异或
语法为 rd, rs1, rs2, bs;bs 是 0–3 的两位字节选择子。寄存器选择 x0–x31 或 ABI 名称,没有 rs3。
32 位 OP 编码:bits31:30=bs、bits29:25=10011、funct3=000、opcode=0110011。
仅 RV32,需 Zkne(也包含于 Zkn/Zk)。取 rs2 中由 bs 选择的字节,经正向 S-box和部分正向 MixColumn,在 32 位内循环左移 bs×8,再与 rs1 异或。
x0 源为零,rd=x0 丢弃写回;源与目标重叠时读取执行前的值,同名源必须具有相同值。本指令必须以数据无关执行延迟实现。
aes32esmi 是 Zkne 扩展的 RV32 标量 AES 中间轮加密指令。它从 rs2[31:0] 中按 bs 选择字节,应用 AES 正向 S-Box 和部分正向 MixColumn,将结果循环左移到 bs 指定位置后与 rs1[31:0] 异或并写入 rd。
受限教学输入按本地官方手册的 ISA 公式计算;不表示完整 AES 轮、轮密钥异或或微架构。
XLEN 固定为 32;本动画不接受 RV64 数值。未作为源的 rd 初值设为 0;源值在写回前读取。
bits 31..30=bs,29..25=10011;funct3=000、OP=0110011。此编码仅定义于 RV32。
动画只展示官方 ISA 字段和架构状态,不表示特定 CPU 的流水线、缓存或时序实现。
AES32ESMI 只处理 rs2 中的一个字节:由 bs=0..3 选字节,应用正向 S-box和部分正向 MixColumn,将 32 位贡献循环左移 bs×8 位,再与 rs1 异或。它不执行完整 AES 加密轮。
RV32,所需扩展已启用;a1=0x11223344、a2=0xA1B2C3D4、bs=0:示例从 rs2 选取 0xD4,按本指令的 S-box与部分 MixColumn规则计算,旋转 0 位后与 a1 异或,a0=0xC96A7BD4。仅为一个字节组合步骤。
RV32,所需扩展已启用;a1=0x11223344、a2=0xA1B2C3D4、bs=0:示例从 rs2 选取 0xD4,按本指令的 S-box与部分 MixColumn规则计算,旋转 0 位后与 a1 异或,a0=0xC96A7BD4。仅为一个字节组合步骤。
不使用。标量密码扩展的这些指令使用整数 X 寄存器。
不是。它只执行官方定义的一个 AES 字节步骤;软件仍需按算法顺序组合指令和轮密钥。