.data cognome:.asciiz "ROSSI" nome:.asciiz "GENNARO" data:.asciiz "120892" CF:.space 12 .text .globl main .ent main main: subu $sp, $sp, 4 sw $ra, ($sp) la $a0, cognome la $a1, nome la $a2, data la $a3, CF jal CalcoloCF lw $ra, ($sp) addiu $sp, $sp, 4 jr $ra .end main .ent CalcoloCF CalcoloCF: # Calcolo cognome li $t0, 0 move $t2, $a0 genC: # salto delle vocali lb $t3, 0($t2) beq $t3 'A', next beq $t3 'E', next beq $t3 'I', next beq $t3 'O', next beq $t3 'U', next # aggiungo carattere sb $t3, 0($a3) addiu $a3,$a3,1 addiu $t0,$t0,1 next: addiu $t2,$t2,1 bne $t0, 3, genC # Calcolo nome li $t0, 0 move $t2, $a1 genC1: # salto delle vocali lb $t3, ($t2) beq $t3 'A', next1 beq $t3 'B', next1 beq $t3 'C', next1 beq $t3 'D', next1 beq $t3 'E', next1 # aggiungo carattere sb $t3, ($a3) addiu $a3,$a3,1 addiu $t0,$t0,1 next1: addiu $t2,$t2,1 bne $t0, 3, genC1 # Copio data move $t0, $a2 lb $t1, ($t0) sb $t1, ($a3) lb $t1, 1($t0) sb $t1, 1($a3) addiu $t0,$t0,4 addiu $a3,$a3,4 lb $t1, ($t0) sb $t1, ($a3) lb $t1, 1($t0) sb $t1, 1($a3) jr $ra .end CalcoloCF .ent MonthToChar MonthToChar: # Parametro in ingresso $a0 = 2 CARATTERI ESTRATTI DALLA DATA # (esempio: "01" per Gennaio) # Parametro in uscita $v0 = "A" per l'esempio di Gennaio # codice della procedura da non sviluppare li $v0, 'X' jr $ra .end MonthToChar