la $registro, label
esattamente carica l'indirizzo dell'area di memoria riferita alla label, ad esempio, tu hai dichiarato
in_name: .space 31, questo vuol dire che in_name è l'indirizzo del primo byte di questi 31 byte. Quindi se in_name rappresenta l'indirizzo 0x4000 quando fai la $a0, in_name, in $a0 troverai 4000hex.
Con un esempio più semplice forse si capisce di più,
supponiamo di specificare da dove inizia l'area dati dinamica quindi scriviamo:
.data 0x10010000
var1: .byte 3, 2
var2: .byte 4
la var1 è un array di due byte, e var 2 è un solo byte. questi 3 byte sono allocati a partire dall'indirizzo 0x10010000, quindi var1 è proprio pari a questo indirizzo perchè non vi è nulla prima, var2 invece è 0x10010000+2=0x10010002, poichè ci sono i due byte precedenti.
esattamente carica l'indirizzo dell'area di memoria riferita alla label, ad esempio, tu hai dichiarato
in_name: .space 31, questo vuol dire che in_name è l'indirizzo del primo byte di questi 31 byte. Quindi se in_name rappresenta l'indirizzo 0x4000 quando fai la $a0, in_name, in $a0 troverai 4000hex.
Con un esempio più semplice forse si capisce di più,
supponiamo di specificare da dove inizia l'area dati dinamica quindi scriviamo:
.data 0x10010000
var1: .byte 3, 2
var2: .byte 4
la var1 è un array di due byte, e var 2 è un solo byte. questi 3 byte sono allocati a partire dall'indirizzo 0x10010000, quindi var1 è proprio pari a questo indirizzo perchè non vi è nulla prima, var2 invece è 0x10010000+2=0x10010002, poichè ci sono i due byte precedenti.