57 lines
957 B
NASM
57 lines
957 B
NASM
DIM = 8
|
|
.data
|
|
matrice:
|
|
.byte 3, 1, 41, 5, 9, 26, 5, 35
|
|
.byte 89, 79, 32, 3, 8, 46, 26, 4
|
|
.byte 33, 8, 32, 79, 50, 28, 8, 4
|
|
.byte 19, 71, 69, 39, 9, 37, 5, 10
|
|
.byte 58, 20, 9, 74, 9, 44, 59, 2
|
|
.byte 30, 7, 8, 16, 40, 6, 28, 6
|
|
.byte 20, 8, 9, 98, 62, 80, 3, 48
|
|
.byte 25, 34, 21, 1, 70, 6, 7, 9
|
|
|
|
.text
|
|
.globl main
|
|
.ent main
|
|
main:
|
|
subu $sp, $sp, 4
|
|
sw $ra, ($sp)
|
|
la $a0, matrice
|
|
li $a1, 1
|
|
li $a2, DIM
|
|
jal maxInTriangolo
|
|
# lettura del risultato calcolato dalla procedura
|
|
lw $ra, ($sp)
|
|
addiu $sp, $sp, 4
|
|
jr $ra
|
|
.end main
|
|
|
|
.ent maxInTriangolo
|
|
maxInTriangolo:
|
|
# ricerca max in riga
|
|
li $v0, 0
|
|
|
|
mul $t0, $a1, $a2
|
|
add $t0, $t0, $a0
|
|
add $t1, $t0, $a2
|
|
loop_riga:
|
|
lw $t2, ($t0)
|
|
blt $t2, $v0, cont_riga
|
|
move $v0, $t2
|
|
cont_riga:
|
|
addiu $t0, $t0, 1
|
|
bne $t0,$t1, loop_riga
|
|
|
|
|
|
add $t0, $a0, $a2
|
|
mul $t1, $a1, $a2
|
|
add $t1, $t1, $t0
|
|
loop_colonna:
|
|
lw $t2, ($t0)
|
|
blt $t2, $v0, cont_colonna
|
|
move $v0, $t2
|
|
cont_colonna:
|
|
addu $t0, $t0, $a2
|
|
bne $t0,$t1, loop_colonna
|
|
|
|
.end maxInTriangolo |