Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- # PRACTICA 2 #######################
- ## s2a.s ##
- .data
- .text
- .globl main
- main:
- li $s1, 23 # Y
- li $s0, 8 # X
- li $s2, 0x01
- sllv $s0, $s0, $s2
- addiu $s0, $s0, -1
- xor $s1, $s1, $s0
- jr $ra
- ## s1b.s ##
- .data
- result: .word 0
- num: .byte '7'
- .text
- .globl main
- main:
- # COPIA EL TEU CODI AQUI
- la $s0, num
- lw $s0, 0($s0)
- la $s1, result
- lw $s1, 0($s1)
- li $s2, 'a'
- blt $s0, $s2, o
- li $s2, 'z'
- blt $s2, $s0, o
- b then
- o: li $s2, 'A'
- blt $s0, $s2, elif
- li $s2, 'Z'
- blt $s2, $s0, elif
- then: addu $s1, $zero, $s0
- b endif
- elif: li $s2, '0'
- blt $s0, $s2, elel
- li $s3, '9'
- blt $s3, $s0, elel
- subu $s1, $s0, $s2
- b endif
- elel: addiu $s1, $zero, -1
- endif: la $s0, result
- sw $s1, 0($s0)
- jr $ra
- .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
- sb $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:
- addiu $sp, $sp, -4
- sw $ra, 0($sp) # reservar espai pila i preparar adreça retorn
- li $t0, 0 # k = 0
- li $t1, 10 # k < t1
- addiu $sp, $sp, -36 # registres segurs
- sw $s0, 0($sp)
- sw $s1, 4($sp)
- sw $s2, 8($sp)
- sw $s4, 12($sp)
- sw $s5, 16($sp)
- sw $s6, 20($sp)
- sw $a0, 24($sp)
- sw $a1, 28($sp)
- sw $a2, 32($sp)
- addiu $sp, $sp, -40 # histo
- wh1: sll $t3, $t0, 2
- move $t2, $sp
- addu $t2, $t2, $t3 # Guardem a $t2 cada iteració + direccio $sp
- sw $zero, 0($t2) # Posa a 0 v[pos] on pos = i*4
- addiu $t0, $t0, 1 # ++k
- blt $t0, $t1, wh1
- li $s0, 0 # k = 0
- li $s1, '0' # char max = '0'
- move $s3, $a0 # *vec
- move $s4, $a1 # num
- move $s5, $sp # s5 = *histo
- li $s6, '0'
- wh2: bge $s0, $s4, fiwh
- move $a0, $s5 #
- addu $a1, $s3, $s0 #
- lb $a1, 0($a1) #
- subu $a1, $a1, $s6 #
- subu $a2, $s1, $s6 # pas de parametres update()
- jal update
- addu $s1, $s6, $v0 # nou valor max
- addiu $s0, $s0, 1 # ++k
- b wh2
- fiwh: move $v0, $s1
- addiu $sp, $sp, 40 # variable local
- lw $s0, 0($sp)
- lw $s1, 4($sp)
- lw $s2, 8($sp)
- lw $s4, 12($sp)
- lw $s5, 16($sp)
- lw $s6, 20($sp)
- lw $a0, 24($sp)
- lw $a1, 28($sp)
- lw $a2, 32($sp)
- addiu $sp, $sp, 36
- lw $ra, 0($sp)
- addiu $sp, $sp, 4
- jr $ra
- update:
- addiu $sp, $sp, -4
- sw $ra, 0($sp)
- addiu $sp, $sp, -12
- sw $a0, 0($sp)
- sw $a1, 4($sp)
- sw $a2, 8($sp)
- jal nofares
- lw $a0, 0($sp)
- lw $a1, 4($sp)
- lw $a2, 8($sp)
- sll $t7, $a1, 2 # i
- lw $t4, 0($a0)
- addu $t2, $t4, $t7 # adreça h[i]
- lw $t2, 0($t2)
- addiu $t1, $t2, 1 # ++h[i]
- sll $t7, $a2, 2
- addu $t2, $t6, $t7 # adreça h[imax]
- lw $t2, 0($t2) # h[imax]
- ble $t1, $t2, else
- move $v0, $a1
- b endif
- else: move $v0, $a2
- endif: lw $a0, 0($sp)
- lw $a1, 4($sp)
- lw $a2, 8($sp)
- addiu $sp, $sp, 12
- lw $ra, 0($sp)
- addiu $sp, $sp, 4
- jr $ra
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement