DOMANDA [MIPS] Confronto lunghezza liste

Pubblicità

xKickAss

Nuovo Utente
Messaggi
78
Reazioni
4
Punteggio
40
Salve a tutti, dovrei fare un programma che effettua il confronto della lunghezza di due liste. Stampa 1 se uguali e 0 se diversi.

Mi chiedevo se così fosse corretto e se ci fosse un modo per migliorare il tutto:

Codice:
.data
a: .word 2,c
c: .word 6,d
d: .word 5,e
e: .word 1,f
f: .word 2,g
g: .word 7,0

h: .word 2,i
i: .word 1,l
l: .word 6,m
m: .word 7,n
n: .word 2,o
o: .word 1,p
p: .word 5,0
.text
la $a0,a
la $a1,h
addi $v0,$zero, 0

jal ric

move $a0,$v0
li $v0,1
syscall
li $v0,10
syscall

ric:
beq $a0,$a1,uguali
bne $a0,$zero,test2
addi $v0,$zero,0
jr $ra
test2:
bne $a1,$zero,loop
addi $v0,$v0,0
jr $ra
uguali:
bne $a0,$zero,loop
addi $v0,$zero,1
jr $ra

loop:
addi $sp,$sp,-4
lw $a0,4($a0)
lw $a1,4($a1)
sw $ra,0($sp)
jal ric
addi $sp,$sp,4
lw $ra,0($sp)
jr $ra

È solo un'esercitazione e allo stesso tempo una curiosità dato che su MIPS abbiamo sempre utilizzato la ricorsione su singoli elementi, quindi ho difficoltà ad utilizzarla su più elementi nella stessa funzione.
 
Pubblicità
Pubblicità
Indietro
Top