gas: troppi riferimenti di memoria

quando si compila l’istruzione

movl 4(%ebp), 8(%ebp) 

ho “troppi ricordi”, cosa c’è di sbagliato ??

Il numero che precede la parentesi è un offset di byte (che causa il verificarsi di un riferimento di memoria) e non è ansible averne due con movl . È necessario spostare temporaneamente il valore su un registro.

 movl 4(%ebp), %ecx movl %ecx, 8(%ebp) 

Non è un’istruzione legale. Per la maggior parte delle istruzioni che fanno riferimento alla memoria, è necessario spostarlo su / da un registro.

movl non mosse memoria-memoria, devi passare attraverso un registro (quindi con due istruzioni movl ).