UNZIP 是否访问内存?
不访问。它只在整数寄存器内重排位字段。
RV32 位解交错(Zbkb),仅 RV32 定义。
仅 RV32 Zbkb 1.0;语法 unzip rd, rs1,均为整数寄存器,没有汇编立即数。
32 位 I 型:bits31:20=000010001111、funct3=101、opcode=0010011;固定选择子不作算术立即数解释。
对 i=0..15,rd[i]=rs1[2*i]、rd[i+16]=rs1[2*i+1];是 ZIP 的逆操作,不访问内存。
源在写回前读取;rd=rs1 时仍使用旧源值,x0 源为零,rd=x0 丢弃写回。
UNZIP(Zbkb,RV32-only)把 rs1 的偶数位收集到 rd 的低 16 位,把奇数位收集到 rd 的高 16 位:对 i=0..15,rd[i]=rs1[2*i],rd[i+16]=rs1[2*i+1]。它是 ZIP 的逆操作。
只显示规范定义的编码、条件和架构可见状态。
假定 RV32 Zbkb 已实现。输入为 32 位无符号位模式;教学步骤不代表处理器周期。
UNZIP 把 32 位源值的偶数位集中到低 16 位、奇数位集中到高 16 位。
假定 RV32 Zbkb、a1=0xD2C4B8A1;unzip a0, a1 后 a0=0x98ECCA41;源与内存不变。
假定 RV32 Zbkb、a1=0xD2C4B8A1;unzip a0, a1 后 a0=0x98ECCA41;源与内存不变。
不访问。它只在整数寄存器内重排位字段。
它属于 Zbkb 密码位操作扩展。