Come assegnare un valore in un registro in assembly
In assembly non esiste un costrutto di assegnazione. I nomi sono i registri a disposizione del processore.
Per assegnare un valore scelgo un registro. Ad esempio il registro A. Poi gli assegno il valore. Ad esempio 10.
In Assembly Intel si usa questa sintassi
mov eax, 10
In Assembly AT/T la sintassi è un po' più complessa.
movl $10, %eax
In questo caso gli operandi sorgente e destinazione sono invertiti di posto.
Il simbolo $ indica che si tratta di una costante, mentre il registro è preceduto dal prefisso %.
Inoltre, MOV non è un comando ma una famiglia di istruzioni perché è sempre accompagnato da un suffisso che indica il tipo di dato
comando | suffisso |
---|---|
movb | b = char |
movw | w = short |
movl | l = integer long (double word) |
Pertanto, in Assembly AT/T a seconda del tipo di dato occorre usare un comando diverso.
E così via.