为什么 lw 和 sw 的 ALU Opcode 是 00?
Why is the ALU Opcode for lw and sw 00?
我正在努力研究数据路径及其在 MIPS 编程中的工作原理。理解它的一部分是理解 ALU 操作码,这些操作码本质上告诉 ALU 执行哪些操作。例如,如果我们实现基本的 AND, OR, ADD, SUB, NAND
和 NOR
函数,我们得到一个基本的 ALU Opcode 分布,即 AND
是 00
,OR
是 01
、ADD
是 10
、SUB
是 10
、NAND
是 10
而 NOR
是 01
.但我不确定我理解为什么 sw
和 lw
的 ALU 操作码是 00
?
在 MIPS 上,只有一种寻址模式:base + displacement。
在加载和存储指令中,ALU 执行此地址计算,这是使用加法完成的。于是,ALU进行加法运算:寄存器+符号扩展立即数,形成发送到数据存储器的地址。
我正在努力研究数据路径及其在 MIPS 编程中的工作原理。理解它的一部分是理解 ALU 操作码,这些操作码本质上告诉 ALU 执行哪些操作。例如,如果我们实现基本的 AND, OR, ADD, SUB, NAND
和 NOR
函数,我们得到一个基本的 ALU Opcode 分布,即 AND
是 00
,OR
是 01
、ADD
是 10
、SUB
是 10
、NAND
是 10
而 NOR
是 01
.但我不确定我理解为什么 sw
和 lw
的 ALU 操作码是 00
?
在 MIPS 上,只有一种寻址模式:base + displacement。
在加载和存储指令中,ALU 执行此地址计算,这是使用加法完成的。于是,ALU进行加法运算:寄存器+符号扩展立即数,形成发送到数据存储器的地址。