Tôi cần dịch mã C này sang hội đồng MIPS. Đây là mã C:Lắp ráp MIPS cho một vòng lặp đơn giản
int tmp = 0;
for (int j = 0; j < 15; ++j)
tmp = tmp * 2 + 3
Đây là mã lắp ráp MIPS của tôi. Đây có phải là bản dịch chính xác không? Nếu bạn thấy bất kỳ sai lầm nào tôi thực sự muốn biết.
# tmp = $v0
# j = $t0
.globl main
main:
li $v0,0
loop:
bgt $t0,15,exit
addi $t0,$t0,1
mul $t1,$v0,2
add $v0,$t1, 3
j loop
exit:
Nhân với sức mạnh của 2 lần sử dụng sll. Đừng ** không ** sử dụng mul –