为什么 lw 和 sw 的 ALU Opcode 是 00?

Why is the ALU Opcode for lw and sw 00?

我正在努力研究数据路径及其在 MIPS 编程中的工作原理。理解它的一部分是理解 ALU 操作码,这些操作码本质上告诉 ALU 执行哪些操作。例如,如果我们实现基本的 AND, OR, ADD, SUB, NANDNOR 函数,我们得到一个基本的 ALU Opcode 分布,即 AND00OR01ADD10SUB10NAND10NOR01.但我不确定我理解为什么 swlw 的 ALU 操作码是 00?

在 MIPS 上,只有一种寻址模式:base + displacement

在加载和存储指令中,ALU 执行此地址计算,这是使用加法完成的。于是,ALU进行加法运算:寄存器+符号扩展立即数,形成发送到数据存储器的地址。