Solved

# Assembly Language in MIPS

Posted on 2011-05-10
645 Views
I need to find the minimum number entered. That is the smallest number entered. Any help. My code is returning a zero for the minimum. that is if i entered 1,2,3,4,5,6,7,8,9,10 the minimum return should be 1.

.data
array:  .space 40
prompt: .asciiz "Enter a number: "
spacee: .asciiz " "
output: .asciiz "The numbers are: "
minimum_Int: .asciiz "\nThe minimum number is : "
.globl main
.text
main:
li \$t1,10         #load 10 into \$t1
li \$t7, 0        # \$t7 minimum number entered
la \$a1,array      #load a pointer to array into \$a1

loop:
addi \$t1,\$t1,-1   #subtract 1 from \$t1, save to \$t1
li \$v0,4          #load 4 into \$v0 (print string)
la \$a0,prompt     #load prompt text into \$a
syscall           #display prompt
syscall           #prompt for input
blt \$v0, \$t7, minimum     # Branch if number is smaller
sw \$v0,0(\$a1)     #store input int to array
#blt \$v0, \$t7, minimum     # Branch if number is smaller
bnez \$t1,loop     #if \$t1 isn't zero,goto loop
li \$t1,9          #if \$t1 is zero, load 9 into \$t1
li \$t2,9          #and load 9 into \$t2
la \$a1,array      #load array pointer into \$a1

loop1:
beqz \$t2,here     #if \$t2 is zero, goto here
addi \$t2,\$t2,-1   #subtract 1 from \$t2, save to \$t2
lw \$t5,0(\$a1)     #load an input int into \$t5
lw \$t6,4(\$a1)     #load the next one into \$t6
ble \$t5,\$t6,loop1 #if \$t5 <= \$t6, goto loop1
sw \$t5,0(\$a1)     #else, store \$t5 in \$a1
sw \$t6,-4(\$a1)     #and store \$t6 in \$a1-4 (swapping them)
bnez \$t2,loop1    #if \$t2 is not zero, to go loop1

li \$v0, 1                 # system call code for print string
syscall                   # print prompt

here:
la \$a1,array      #load array into \$a1
addi \$t1,\$t1,-1   #subtract 1 from \$t1, save to \$t1
bnez \$t1,loop1    #if \$t1 isn't zero, goto loop1
li \$v0,4          #load 4 into \$v0 (print string)
la \$a0,output     #load 'the numbers are' into \$a0
syscall           #display message to screen
la \$a1,array      #load array pointer into \$a1
li \$t1,10         #load 10 into \$t1

loop2:
li \$v0,1          #load 1 into \$v0 (print int)
lw \$a0,0(\$a1)     #load \$a1 into \$a0
blt \$a0, \$t7 minimum
syscall           #print first number to screen
li \$v0,4          #load 4 into \$v0 (print string)
la \$a0,spacee     #load ' ' into \$a0
syscall           #print ' ' to screen
addi \$t1,\$t1,-1   #subtract 1 from \$t1, save to \$t1

bnez \$t1,loop2    #if \$t1 isn't zero, goto loop2

minimum:
li \$v0, 4                 # system call code for print string
la \$a0, minimum_Int       # print string "The smallest of numbers entered is : "
syscall                   # print prompt

li \$v0, 1                 # system call code for print string
move \$a0, \$t7             # print smallest number
syscall                   # print prompt

li \$v0,10              #exit

syscall
0
Question by:oparebea

LVL 74

Expert Comment

Why do you have the branch at line 21? Shouldn't you wait until you receive all numbers prior to checking for the minimum?
0

LVL 74

Expert Comment

I see that you have sorted the array. Why not load the first slot of the array an print that?
``````la \$a0, array
lw \$a0, 0(\$a0)
``````
0

LVL 74

Accepted Solution

Never mind the first comment. I see now what you are doing.
0

Author Closing Comment

The solution helped but partially
0

LVL 74

Expert Comment

The solution helped but partially
For my own edification, how so?
0

## Featured Post

Windows Script Host (WSH) has been part of Windows since Windows NT4. Windows Script Host provides architecture for building dynamic scripts that consist of a core object model, scripting hosts, and scripting engines. The key components of Window…
This article will show, step by step, how to integrate R code into a R Sweave document
This video teaches viewers about errors in exception handling.
The goal of the video will be to teach the user the difference and consequence of passing data by value vs passing data by reference in C++. An example of passing data by value as well as an example of passing data by reference will be be given. Bot…