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:
- # 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 $t0, 10
- for: bge $s2, $t0, ffor
- sll $t3, $s2, 2
- addu $t3, $t3, $sp
- sw $zero, 0($t3)
- addiu $s2, $s2, 1
- b for
- ffor: li $t2, '0'
- li $s2, 0
- for2: bge $s2, $s1, ffor2
- move $a0, $sp
- addu $a1, $s0, $s2
- lb $a1, 0($a1)
- li $t3, '0'
- subu $a1,$a1,$t3
- subu $a2,$t2,$t3
- jal update
- addiu $t2,$v0,'0'
- addiu $s2,$s2,1
- b for2
- ffor2: move $v0, $t2
- 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:
- addiu $sp, $sp, -16
- sw $s0, 0($sp)
- sw $s1, 4($sp)
- sw $s2, 8($sp)
- sw $ra, 12($sp)
- move $s0, $a0
- move $s1, $a1
- move $s2, $a2
- jal nofares # crida a nofares
- sll $t6, $s1, 2
- sll $t7, $s2, 2
- addu $t0, $s0, $t6
- addu $t1, $s0, $t7
- lw $t3, 0($t0)
- addiu $t4, $t3, 1
- sw $t4, 0($t0)
- lw $t5, 0($t1)
- if: ble $t3, $t5, else
- move $v0, $s1
- b fiif
- else:
- move $v0,$a2
- fiif:
- lw $s0, 0($sp)
- lw $s1, 4($sp)
- lw $s2, 8($sp)
- lw $ra, 12($sp)
- addiu $sp, $sp, 16
- jr $ra
Add Comment
Please, Sign In to add comment