C语言转换成MIPS汇编语言 f = g - A[B(4)].
f=g-A[B(4)].f,g对应register$s0,$s1.数组A,B的baseaddress分别是$s6,$s7....
f = g - A[B(4)].
f, g 对应register $s0, $s1. 数组A,B的base address 分别是$s6, $s7. 展开
f, g 对应register $s0, $s1. 数组A,B的base address 分别是$s6, $s7. 展开
1个回答
展开全部
# Assume the size of element in array A and B is 4 bytes.
lw $t0, 16($s7) # Load B[4] into $t0
mul $t1, $t0, 4 # Compute the offset (B[4] * 4 bytes)
add $t2, $s6, $t1 # Compute the address of A[B[4]]
lw $t3, 0($t2) # Load A[B[4]] into $t3
sub $s0, $s1, $t3 # Compute f = g - A[B[4]]
追问
第三行应该是lw $t0, 16($s7) 吧。 那个4 不应该乘以4吗。
还有就是mips有 mul这个指令码。我看的怎么没有呢。
追答
的确是16,手滑。
是有mul的,不过mul reg1, reg2, imm其实是宏,展开以后是
addi $at, $zero, 0x4
mul $t1, $t0, $at
本回答被提问者采纳
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询