9 假定以下C语句中包含的变量f,g,h,i,j分别存放在寄存器$11-$15中,写出完成C语言语句 f =(g+h)*i/j功能的MIPS汇编指令序列,并写出每条MIPS指令的十六进制数。
时间: 2024-03-10 20:50:01 浏览: 184
以下是完成C语言语句 f =(g+h)*i/j功能的MIPS汇编指令序列:
```assembly
lw $t0, 0($15) # 将g的值加载到$t0寄存器中
lw $t1, 0($14) # 将h的值加载到$t1寄存器中
addu $t2, $t0, $t1 # 将g和h的值相加,结果存放到$t2寄存器中
lw $t3, 0($13) # 将i的值加载到$t3寄存器中
mult $t2, $t3 # 将$t2和$t3寄存器中的值相乘,结果存放到$HI和$LO寄存器中
mflo $t4 # 将乘法结果的低32位存放到$t4寄存器中
lw $t5, 0($12) # 将j的值加载到$t5寄存器中
div $t4, $t5 # 将$t4和$t5寄存器中的值相除,商存放到$t4寄存器中,余数存放到$HI寄存器中
mflo $11 # 将商存放到$f寄存器中
```
每条MIPS指令的十六进制数如下:
```assembly
lw $t0, 0($15) # 8f8b0000
lw $t1, 0($14) # 8f890000
addu $t2, $t0, $t1 # 01094021
lw $t3, 0($13) # 8f880000
mult $t2, $t3 # 010a0018
mflo $t4 # 000c1802
lw $t5, 0($12) # 8f810000
div $t4, $t5 # 018d001a
mflo $11 # 00004802
```
阅读全文