[9 Settembre 2022] Assembly #53
Elia-Belli
started this conversation in
Assembly (M-Z)
Replies: 4 comments
-
|
Beta Was this translation helpful? Give feedback.
0 replies
-
|
Beta Was this translation helpful? Give feedback.
0 replies
-
|
Beta Was this translation helpful? Give feedback.
0 replies
-
.data
buffer: .space 20
.text
main:
li $v0, 8 # Codice per input stringa
la $a0, buffer # Carica indirizzo base in $a0
li $a1, 20 # Alloca al massimo 20 caratteri
syscall # $a0 contiene l'indirizzo base della stringa
##########################################
## INSERIRE IL CODICE QUI
li $v0, 0 #somma dei numeri uguali al precendente
li $v1,0 #somma cifre in tutta la stringa
li $t0,0 #indice
jal contaOccorenze
move $a0,$v0 #se facessi il contrario avrei $v0=1 e perderei il
li $v0,1 #numero di occorenze
syscall
li $v0,11
la $a0,0xA #stampo \n
syscall
move $a0,$v1 #stampo la somma delle cifre nella tringa
li $v0,1
syscall
li $v0,10
syscall
contaOccorenze:
add $t1,$t0,$a0 # carico in $t1 indice+indirizzo
lb $t2,($t1) #carico in $t2 l'elemento della stringa in posizione 0
beq $t2,0xA,fine #controllo se è uguale a \n
subi $t2,$t2,48 #ottengo il valore decimale
add $v1,$v1,$t2 #aggiungo a $v1 il primo elemento
lb $t3,1($t1) # carico in $t3 l'elemento della stringa in posizione 1
beq $t3,0xA,fine #controllo se è uguale a \n
subi $t3,$t3,48 #ottengo il valore decimale
beq $t2,$t3,aggiungi1 #se sono uguali aggiungo 1 a $v0
j Incremento
aggiungi1:
addi $v0,$v0,1
j Incremento
Incremento:
addi $t0,$t0,1 #aumento l'idice di uno
j contaOccorenze
fine:
jr $ra |
Beta Was this translation helpful? Give feedback.
0 replies
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
-
Soluzione del Prof
Le soluzioni fornite dal professore potrebbero essere incomplete o poco chiare, quindi sono benvenute soluzioni che le completano, oppure soluzioni alternative e/o con spiegazioni più approfondite: Soluzione.txt
Beta Was this translation helpful? Give feedback.
All reactions