This is a mips assembly code for a C code.I am simulating it using Qtspim, but I am getting an error as titled above.
.text
# j=$s0 , i=$t0
main:
li $s0,5 # setting j to 5
li $t0,0 # setting i to zero
loop:
slti $t1,$t0,8
bne $t1,1,Exit
add $s0,$s0,$t0
addi $t0,$t0,1
beq $s0,10,Exit
j loop
Exit:
The C code which I am trying to convert into assembly is as below
j=5;
for(t=0,i<8;i++){
j=j+1;
if(j==10)
return;
}
The assembly code seems ok. I guess your problem is that you have delayed branching enabled in QtSpim.
This means that the instruction that follows a branch is always executed, regardless of the action taken by the branch.
The easy fix is either to disable delayed branching, or to add a
NOPafter any branch instruction.In your code: