Note that there are some explanatory texts on larger screens.

plurals
  1. POMIPS Assembly homework. Can't seem to find the bug
    primarykey
    data
    text
    <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>
    singulars
    1. This table or related slice is empty.
    plurals
    1. This table or related slice is empty.
    1. This table or related slice is empty.
    1. This table or related slice is empty.
 

Querying!

 
Guidance

SQuiL has stopped working due to an internal error.

If you are curious you may find further information in the browser console, which is accessible through the devtools (F12).

Reload