Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- .data
- w: .asciiz "8754830094826456674949263746929"
- resultat: .byte 0
- .text
- .globl main
- main:
- addiu $sp, $sp, -4
- sw $ra, 0($sp)
- la $a0, w
- li $a1, 31
- jal moda
- la $s0, resultat
- sw $v0, 0($s0)
- move $a0, $v0
- li $v0, 11
- syscall
- lw $ra, 0($sp)
- addiu $sp, $sp, 4
- jr $ra
- nofares:
- li $t0, 0x12345678
- move $t1, $t0
- move $t2, $t0
- move $t3, $t0
- move $t4, $t0
- move $t5, $t0
- move $t6, $t0
- move $t7, $t0
- move $t8, $t0
- move $t9, $t0
- move $a0, $t0
- move $a1, $t0
- move $a2, $t0
- move $a3, $t0
- jr $ra
- moda:
- # ESCRIU AQUI EL TEU CODI
- # k = $s2, max = $v0
- addiu $sp, $sp, -16 # salvem $ra,$s0,$s1,$s2 a la pila
- sw $ra, 0($sp)
- sw $s0, 4($sp)
- sw $s1, 8($sp)
- sw $s2, 12($sp)
- addiu $sp, $sp, -40 # reservem espai per histo[10]
- move $s0,$a0 # guardem *vec a $s0
- move $s1,$a1 # guardem num a $s1
- move $s2, $zero
- li $t7, 10
- for1:
- bge $s2, $t7, fifor1
- sll $t6,$s2,2
- addu $t6,$t6,$sp
- sw $zero,0($t6)
- addiu $s2,$s2,1
- b for1
- fifor1:
- li $v0,48
- move $s2, $zero
- for2:
- bge $s2, $s1, fifor2
- move $a0,$sp # preparem histo a $a0
- addu $t0,$s2,$s0 # preparem vec[k]-'0' a $a1
- lb $a1,0($t0)
- addiu $a1,$a1,-48
- move $a2,$v0 # preparem max-'0' a $a2
- addiu $a2,$a2,-48
- jal update # crida a update
- addiu $v0,$v0,48
- addiu $s2,$s2,1
- b for2
- fifor2:
- addiu $sp, $sp, 40 # restaurem $ra,$s0,$s1,$s2
- lw $ra, 0($sp) # i el $sp
- lw $s0, 4($sp)
- lw $s1, 8($sp)
- lw $s2, 12($sp)
- addiu $sp, $sp, 16
- jr $ra
- update:
- # ESCRIU AQUI EL TEU CODI
- addiu $sp,$sp,-16 # salvem $ra,$s0,$s1,$s2 a la pila
- sw $ra, 0($sp)
- sw $s0, 4($sp)
- sw $s1, 8($sp)
- sw $s2, 12($sp)
- move $s0,$a0 # guardem *h a $s0
- move $s1,$a1 # guardem i a $s1
- move $s2,$a2 # guardem max a $s2
- jal nofares # crida a nofares
- sll $t0,$s1,2
- addu $t0,$t0,$s0
- lw $t1,0($t0)
- addiu $t1,$t1,1 # h[i]++;
- sw $t1,0($t0)
- sll $t0,$s2,2
- addu $t0,$t0,$s0
- lw $t2,0($t0)
- bge $t2,$t1,else # if
- move $v0,$s1
- b fiif
- else:
- move $v0,$s2
- fiif:
- lw $ra, 0($sp) # restaurem $ra,$s0,$s1,$s2
- lw $s0, 4($sp) # i $sp
- lw $s1, 8($sp)
- lw $s2, 12($sp)
- addiu $sp,$sp,16
- jr $ra
Add Comment
Please, Sign In to add comment