Okay, so the question here is "What does $v0 have at end of the loop execution?", I found out the answer 3628800 from a friend, and he wrote some python code that translated the Mips, essentially the code just means 10! (factorial of 10, not me yelling 10 lol)
heres the python code if you'd like that too:
a = 10
v = 1
while (a != 0):
v *= a
a -= 1
print (v)
Now, I understand what the python code does, and I understand that it translates into the factorial of 10, but in the mips assembly, I thought I understood the logic of it, actually, I made a crappy ms paint diagram here where I thought it was either 9, 10, or 11 (I know, not very specific, but I'm still rather new to this :( please don't judge me) Heres the picture if you'd like that too :)
.text
.globl main
main:
li $a0, 10
li $v0, 1
Loop:
beq $a0, $zero, exit
mul $v0, $a0, $v0
add $a0, $a0, -1
jal Loop
exit:
li $v0, 10
syscall
Now, you're probably wondering why I'm asking a question even though I've seemingly solved the problem either way, plus added my own thinking to why I had previously believed it was 10, (well, in the picture I drew I said 9 or 11, but I also meant 10 too lol) and the answer to that would be that I just don't understand the logic behind why Mips does what it does and instead of just printing out 10, (although the jal instruction is probably where that lies and does the factorial stuff), anyways, any help here would be appreciated a lot! :) Thank you S.O.