Domanda

Da quello che ho letto su mov, copia il secondo argomento nel primo argomento.Allora, cosa fa questo?

movl    8(%ebp),    %edx

Copia tutto ciò che è in edx nel primo parametro della funzione (poiché un offset di +8 da ebp è un parametro)?

Mi sembra che questo significhi davvero spostare il primo parametro nel registro edx, ma ho letto su Wikipedia che è il contrario?

È stato utile?

Soluzione

movl 8(%ebp), %edx

è in "Sintassi AT&T";in questa sintassi, la sorgente viene prima e la destinazione seconda.Quindi sì, la tua convinzione è corretta.La maggior parte della documentazione utilizza la "sintassi Intel", che ha l'ordine inverso.Questa è una fonte di notevole confusione per le persone che non conoscono l'assembly x86.

Nella sintassi Intel, la tua istruzione sarebbe scritta:

mov edx, [ebp + 8]

Notare l'assenza di % prima dei nomi dei registri e l'uso di parentesi quadre invece di parentesi per l'indirizzo e l'assenza di un suffisso l sull'istruzione.Questi sono omaggi inutili per sapere quale forma di assemblaggio stai guardando.

Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top