PDA

Visualizza la versione completa : [Assembler] Istruzione lea


ped451
19-02-2010, 16:26
Salve ho questa linea di codice

lea 1(%eax, %eax, 2), %eax
So che alla fine in eax mi ritrovo questo risultato: 3x+1, ma come funziona precisamente l'istruzione lea?!
Grazie mille per l'aiuto!!

oregon
19-02-2010, 16:36
Con quell'istruzione ottieni nel registro eax l'indirizzo del dato puntato da

3*eax+1


(non 3x+1 che non ha senso)

ped451
19-02-2010, 18:20
Ok grazie mille!!! Un'altra domanda...
quando io faccio questo:

mov (%ecx, %edx, 4), %eax
ad esempio per inserire un valore di un vettore in eax, cambio i parametri di qualche registro tipo CF o ZF?
Grazie mille dell'aiuto, e spero di essere stato chiaro!

oregon
19-02-2010, 19:44
Originariamente inviato da ped451
ad esempio per inserire un valore di un vettore in eax, cambio i parametri di qualche registro tipo CF o ZF?


Ovviamente sì, ma si dice che vengono "modificati i valori dei flag" ...

In particolare, qualsiasi MOV, modifica i flag OF, SF, ZF, AF, PF, CF

ped451
20-02-2010, 11:44
Ok, perfetto. Ma in che modo, cioè quali valori vengono assegnati? Ho provato a cercare sul manuale del processore alla voce MOV ma mi dice rFLAGS Affected: None. Io devo fare un salto condizionale e non sapendo come vengono modificati i flags non so quale usare. Grazie mille per l'aiuto e le correzioni di linguaggio.

oregon
20-02-2010, 12:49
Scusa ... pensavo ad altre CPU ... in effetti la MOV non modifica i flag ...

Ma che tipo di salto condizionale devi fare ?

ped451
20-02-2010, 13:54
Ho risolto, mi sono sbagliato, penso sia impossibile fare un salto condizionale dopo una mov.... grazie mille per l'aiuto!!

oregon
20-02-2010, 14:09
Originariamente inviato da ped451
Ho risolto, mi sono sbagliato, penso sia impossibile fare un salto condizionale dopo una mov.... grazie mille per l'aiuto!!

Puoi usare la TEST ...

ped451
20-02-2010, 18:17
Grazie mille del consiglio!

Loading