title: MIPS Assembly homework. Can't seem to find the bug
body: <p>Ok the question is as follows: Using MARS, develop a program that:</p>
  
  <ul>
  <li>Prompts the user to enter an integer,</li>
  <li>Reads the integer from the keyboard (say n),</li>
  <li>Calculates and prints out the sum of odd numbers and the sum of even numbers from 1
  to n.</li>
  </ul>
  
  <p><em>Here is my attempt, please <strong>DON'T</strong> SOLVE MY HOMEWORK. i would like to learn from my mistakes. My question is, where did i go wrong, the registers seem to go to -MAXINT
  run it and you will see :(</em></p>
  
  <pre><code>    # Assignment 3, part 1
      # NAME  
      #The Formulas used in this assignments are visible in a text document 
      #attached in the zip. and their mathematical proofs. 
          # Odd or Even Checker by parity bit in binary format.
          # by anding it with the number N
          # if it is odd, the anding will result in 00000001
          # if it is even the ANDing will result in all 0
          # we can check if the result is ==0 or not
          # then use mathematical formulas to derive the sums
          # using the least number of instructions    
          # Without using the not-yet-learnt instructions.
  </code></pre>
  
  <h1>-------------------------------------------------------------------------</h1>
  
  <pre><code>.data       #Data Declaration Section
      msg1: .asciiz "Hello, Enter an Integer:\n-&gt;"
      msgodd: .asciiz "Odd Sum is :\n"
      msgeven: .asciiz "Even Sum is :\n"  
  .text       
          #START
  
      la $a0, msg1    #Load the address of label msg1
      li $v0,4    #Load int 4 to v0, and address the system call. 
      syscall
  
     #Request a Syscall for integer input
      li $v0,5    #Load int 5 &lt;int inp&gt;
      syscall 
  
      move $a0,$v0    #copy the int entered
      parity:
      move $t0,$a0    #will be used to test for odd or even
      move $a3,$a0    #will be used later
      andi $t0,00000001 # this is the parity bit i talked about above.
      beq $t0,$zero,even_n
      #s1 hold odd sum, s2 hold even sum, t1 is temp for odd, t2 is temp for even
      li $s5,1
      odd_n:
  move $t1,$a3
  move $t2,$a3
  addi $t2,$t2,-1
  
  ol:
      add $s1,$s1,$t1
      addi $t1,$t1,-2
      bne $t1,$s5,ol
  
  el:
      add $s2,$s2,$t2
      addi $t2,$t2,-2
      bne $t2,$zero,el
  
      even_n:
  move $t1,$a3
  move $t2,$a3
  addi $t1,$t1,-1
  
  eol:
      add $s1,$s1,$t1
      addi $t1,$t1,-2
      bne $t1,$s5,eol
  
  eel:
      add $s2,$s2,$t2
      addi $t2,$t2,-2
      bne $t2,$zero,eel
  
      print:
      li $v0,4
      la $a0,msgodd
      syscall
      li $v0,1
      move $a0,$s1
      syscall
  
      la $a0,msgeven
      syscall
      li $v0,1
      move $a0,$s2
      syscall
  
      exit:
      li $v0,10
      syscall
  </code></pre>