Respuesta :

Answer and Explanation:

The program using Assembly language to calculate maximum value in array is given as below:

.data

space: .asciiz " "

X: .word 31, 17, 92, 46, 172, 208, 13, 93, 65, 112

N: .word 10

.text

main: la $a0, X #$a0=load address of array X

lw $a1, N #$a1=10 --number elements

jal readArray #call readArray

li $v0, 10 #exit program

syscall

readArray:

li $t0, 0 #$t0=0

li $t1, 0 #$t1=0

buc: bge $t0, $a1, final #if $t0 >= $a1 then goto final

lw $a0, X($t1) #$a0 = X(i)

li $v0, 1 #Print integer

syscall

la $a0, space #load a space: " "

li $v0, 4 #print string

syscall

addi $t1, $t1, 4 #Every 4 bytes there is an integer in the array

addi $t0, $t0, 1 #$t0=$t0+1

b buc #goto buc

final:

jr $ra #return

The algorithm which are the steps used above is:

Declares array of integers

Calls declared array

Reads declared array and compares integer values stored with if statements to make swap

prints array

Exits