feat: Initial commit
This commit is contained in:
92
Temi esame/codF.asm
Normal file
92
Temi esame/codF.asm
Normal file
@@ -0,0 +1,92 @@
|
||||
.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
|
||||
Reference in New Issue
Block a user