Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- .data
- array: .space 80 #array of 20 integers
- entryPrompt: .asciiz "\nEnter a number: "
- sPrompt: .asciiz "\nSmallest: "
- lPrompt: .asciiz "\nLargest: "
- dPrompt: .asciiz "\nNumbers divisble by 4: "
- .globl main
- .text
- main: li $t0, 20 #t0 to track number entered
- la $t1, array #load starting address
- loopEntry: la $a0, entryPrompt
- li $v0, 4
- syscall
- li $v0, 5
- syscall
- sw $v0, 0($t1) #store the value
- add $t0, $t0, -1 #decrement the counter
- add $t1, $t1, 4
- bgtz $t0, loopEntry
- la $a0, array
- jal smallestLargest
- move $a1, $v0 #move retVals out of v0 and v1
- move $a2, $v1
- la $a0, sPrompt #print prompt
- li $v0, 4
- syscall
- move $a0, $a1 #move smallest for print
- li $v0, 4
- syscall
- la $a0, lPrompt #print prompt
- li $v0, 4
- syscall
- move $a0, $a2 #move smallest for print
- li $v0, 4
- syscall
- la $a0, array
- jal divisible #call method
- move $v1, $v0 #move retVal
- la $a0, dPrompt #print prompt
- li $v0, 4
- syscall
- move $a0, $v1 #print result
- li $v0, 4
- syscall
- li $v0, 10 #exit
- syscall
- smallestLargest: li $v0, 0 #v0 stores largest
- li $v1, 999 #v1 stores smallest
- li $t1, 20 #iterator
- loopsL: lw $t0, 0($a0) #load array
- bgt $v0, $t0, notLarge
- move $v0, $t0
- notLarge: blt $v1, $t0, notSmall
- move $v1, $t0
- notSmall: addi $a0, $a0, 4
- addi $t1, $t1, -1
- bgtz $t1, loopsL
- jr $ra
- divisible: li $v0, 0 #v0 is the return val
- li $t0, 20 #iterator
- loopD: lw $t1, 0($a0) #load value into t1
- and $t1, $t1, 3 #and with 3
- bnez $t1, notD
- addi $v0, $v0, 1
- notD: addi $t0, $t0, -1
- addi $a0, $a0, 4
- bgtz $t0, loopD
- jr $ra
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement