max*_*r7t 3 mips multiplication
我正在学习如何做 MIPS,但我对乘法感到困惑。假设我正在将以下 C 代码转换为 MIPS。
c = b + a*3
Run Code Online (Sandbox Code Playgroud)
其中a、b、c分别存储在寄存器$s1、$s2、$s3中。我该如何在 MIPS 中编写 a*3 ?是否有用于乘法的 addi 类型指令,或者我是否将 3 存储在临时寄存器中并像这样使用 mult 运算符?
addi $t0, $zero, 3
mult $s1,$t0
Run Code Online (Sandbox Code Playgroud)
如果是这样,我如何获得此操作的最终值或乘积来完成我的 C 代码?
小智 5
MIPS指令集不提供具有立即值的mul指令。因此,您必须将值存储到临时寄存器中,然后使用 mult 指令。mult 指令的结果将存储在 lo 和 hi 寄存器中,分别给出结果的低 32 位和结果的高 32 位。