Question

My code is throwing a few errors and I am not super familiar with the MIPS syntax always. The given problem is:

The original problem investigated in 1202, was how fast rabbits could breed in ideal circumstances.

Suppose a newly born pair of rabbits, one male and one female, are put in a field.

Rabbits are sexually mature after one month so that at the end of its second month a female can produce another pair of rabbits.

Suppose that our rabbits never die and that females always produce one pair (one male, one female) every month from the second month on.

How many pairs will there be in one year?

The code I have so far is:

.data

str: .asciiz "The number of pairs of rabbits in a year are: "

.text
.globl main

li $t0, 12
li $t1, 0
li $t2, 1
li $t4, 0

la $a0, str
li $v0, 4
syscall

loop:

beq $t4, $t0, exit
move $t3, $t2
add $t2, $t1, $t2
move $t1, $t3
addi $t4, $t4, 1

j loop

exit:

move $a0, $t2
li $v0, 1
syscall


li $v0, 10
syscall
Was it helpful?

Solution

Well, you didn't say what the error was... but when I plugged this into spim I received:

SPIM Version 7.4 of January 1, 2009
Copyright 1990-2004 by James R. Larus (larus@cs.wisc.edu).
All Rights Reserved.
See the file README for a full copyright notice.
Loaded: /opt/local/share/spim/exceptions.s
The following symbols are undefined:
main

Instruction references undefined symbol at 0x00400014
[0x00400014]    0x0c000000  jal 0x00000000 [main]           ; 180: jal main

Which implies that you are missing the main label. Add it right before your main function:

.text
.globl main
main:

li $t0, 12
...

This yielded the expected answer:

The number of pairs of rabbits in a year are: 233

OTHER TIPS

You should change the settings in the tab "Settings". Simulator-->Settings-->MIPS-->Exception Handler: Uncheck this option "Load Exception Handler" this way you disabling the native MIPS code and your own code works.

Licensed under: CC-BY-SA with attribution
Not affiliated with StackOverflow
scroll top