我正在尝试绕过数据路径及其在MIPS编程中的工作方式。低估它的一部分是理解ALU操作码,该操作码实质上告诉ALU要执行哪些操作。例如,如果我们实现基本的AND, OR, ADD, SUB, NAND
和NOR
函数,我们将获得基本的ALU操作码分布,即AND
为00
,OR
为01
,ADD
为10
, SUB
为10
,NAND
为10
,NOR
为01
。但是我不确定我是否理解为什么sw
和lw
的ALU操作码是00
?
在MIPS上,只有一种寻址模式:base + displacement。
在加载和存储指令中,ALU执行此地址计算,这是使用加法完成的。因此,ALU在以下位置执行加法:寄存器+立即扩展符号扩展,形成发送到数据存储器的地址。