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.

 


 

Segnalami un errore, un refuso o un suggerimento per migliorare gli appunti

FacebookTwitterLinkedinLinkedin
knowledge base

Linguaggio assembly