计算机指令系统详解
1. 立即数类型算术逻辑单元(ALU)指令
立即数 ALU 指令允许将用户数据包含在指令中,但这些指令仍需从寄存器文件(RF)中获取寄存器数据,以便与用户数据进行组合。
1.1 立即数加法指令(ADDI)
ADDI 指令将寄存器 RS 的内容与用户提供的 16 位立即数相加,并将结果返回到 RF 中的寄存器 RD。其指令格式如下:
ADDI RS, RD, Imm Value
Reg[RS] + Immediate Value -> Reg[RD]
ADDI 指令的数据路径需要四个时钟周期来执行:
1. 第一个时钟周期 :指令内容从指令存储器传输到指令寄存器。
2. 第二个时钟周期 :指令中的 16 位立即数被符号扩展为 32 位,同时从 RF 中获取 RS 的内容。
3. 第三个时钟周期 :两个值在 ALU 中相加。
4. 第四个时钟周期 :处理后的数据被写回到 RF 中地址为 RD 的寄存器。
1.2 立即数减法指令(SUBI)
SUBI 指令与 ADDI 类似,但它从 RS 的内容中减去立即数,并将结果返回到 RD。其指令格式如下:
SUBI RS, RD, Imm Value
Reg[RS] - Im