PDA

View Full Version : [Assembly MIPS] il registro non è troppo piccolo?


verci
27-01-2012, 11:24
Domanda!

Ho questo esercizio in assembly:

.data
dati: .byte 67, 73, 65, 79, 0, 32, 67, 65, 73, 79, 0
# C I A O C A I O (codifica ASCII, il 32
#è uno spazio)

.text
li $v0, 4
la $a0, dati
syscall

li $v0, 4
la $a0, dati
addi $a0, $a0, 5
syscall

L'output di questo programma è:
CIAO CAIO

Il punto è, la direttiva .byte dice: "stores the listed value(s) as 8bit byte", ma cosa significa "salva i/il valore/i listato/i come byte di 8 bit ?
Da quello che ho capito, ogni valore scritto viene salvato come 1 byte. Quindi 67 occupa 1 byte, 73 un altro byte e via andare.
Ma se fosse così non ci starebbe tutto il segmento dati nel registro $a0, essendo il registro di 32bit / 4byte. Quindi, come fa a salvare tutto il segmento nel registro?

verci
27-01-2012, 11:37
niente, ho capito da solo!

Quando faccio la la $registro, dati, non setto $registro al contenuto di dati, ma metto in $registrato l'indirizzo dell'allocazione di memoria di dati.