PDA

View Full Version : [MIPS] Confronto lunghezza liste


xkickass
18-07-2017, 16:31
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:


.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


Edit: È 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.