Buongiorno, sto studiando il linguaggio Assembly MIPS.
Sto tentando di creare un programma che Stampa una stringa in maiuscolo.
Ogni qualvolta compare la pseudo istruzione load address unita al target in_name, non riesco a capirne la funzione, come in questo caso:
Se può essere utile, questo è il programma completo:
Sto tentando di creare un programma che Stampa una stringa in maiuscolo.
Ogni qualvolta compare la pseudo istruzione load address unita al target in_name, non riesco a capirne la funzione, come in questo caso:
la $a0, in_name
li $a1, 31
li $v0, 8
syscall
li $a1, 31
li $v0, 8
syscall
Se può essere utile, questo è il programma completo:
Codice:
############### Data segment ##########
.data
nome_prompt: .asciiz "Prego inserisci il tuo nome: \n"
out_name: .asciiz "Il tuo nome in maiuscolo è: "
in_name: .space 31
############ Code segment ##########
.text
.global main
main:
la $a0, nome_prompt
li $v0, 4
syscall
la $a0, in_name
li $a1, 31
li $v0, 8
syscall
la $a0, out_name
li $v0, 4
syscall
la $t0, in_name
loop:
lbu $t1, 0($t0)
beqz $t1, exit_loop
blt $t1, 'a', no_change
bgt $t1, 'z', no_change
addiu $t1, $t1, -32
sb $t1, ($t0)
no_change:
addiu $t0, $t0, 1
j loop
exit_loop:
la $a0, in_name
li $v0, 4
syscall
li $v0, 10
syscall