Déplacer pointeur

Résolu
DeAtHCrAsH
Messages postés
2670
Date d'inscription
vendredi 25 janvier 2002
Statut
Membre
Dernière intervention
6 février 2013
- 26 sept. 2004 à 15:40
DeAtHCrAsH
Messages postés
2670
Date d'inscription
vendredi 25 janvier 2002
Statut
Membre
Dernière intervention
6 février 2013
- 26 sept. 2004 à 18:15
Je dispose d'une variable défini comme cela :
var1 dd 256 dup(?)

A l'interieur j'y stocke des adresses mémoires

Ainsi pour les afficher ensuite je fais :
invoke MessageBox ,0 ,var1 ,0 ,MB_OK
invoke MessageBox ,0 ,var1 + 4 ,0 ,MB_OK
invoke MessageBox ,0 ,var1 + 8 ,0 ,MB_OK
invoke MessageBox ,0 ,var1 + 12 ,0 ,MB_OK

Comment faire ceci dans une boucle en déplacant a chaque itération le pointeur de au suivant ( soit de 4 octets) ?

Shell

7 réponses

BruNews
Messages postés
21041
Date d'inscription
jeudi 23 janvier 2003
Statut
Modérateur
Dernière intervention
21 août 2019
27
26 sept. 2004 à 17:02
Mets ESI sur var1
a chaque tour: add esi,4

ciao...
BruNews, MVP VC++
3
BruNews
Messages postés
21041
Date d'inscription
jeudi 23 janvier 2003
Statut
Modérateur
Dernière intervention
21 août 2019
27
26 sept. 2004 à 18:08
Y a vraiment des trucs qui m'echappent....

Si tu fais une fonction, tu sais par force ou sera place le retour puisque c'est toi qui la fais, ne te semble pas ???
Dans tous les cas, prends par habitude de mettre dans EAX pour rester coherent avec les autres codes.

ciao...
BruNews, MVP VC++
3
DeAtHCrAsH
Messages postés
2670
Date d'inscription
vendredi 25 janvier 2002
Statut
Membre
Dernière intervention
6 février 2013

26 sept. 2004 à 17:45
Erf j'ai vraiment du mal,

Je faisais avec "mov esi ,var1" et je recuperer donc a chaque fois le contenu de var1 au lieu de récuperer l'adresse stoquée sur 4octets.

Mais en faisant avec "lea esi ,var1" je récupère bien l'adresse par la suite si j'incrémente de 4 j'obtiens bien l'adresse mémoire suivante.

Dur dur tout ca, merci pour ta réponse BruNews.

Shell
0
DeAtHCrAsH
Messages postés
2670
Date d'inscription
vendredi 25 janvier 2002
Statut
Membre
Dernière intervention
6 février 2013

26 sept. 2004 à 17:51
Au fait lorsque j'appelle une fonction qui me renvoie un pointeur, dans quel registre est stoqué le résultat ?
Je crois savoir que c'est eax mais j'en suis pas sure.

Shell
0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
BruNews
Messages postés
21041
Date d'inscription
jeudi 23 janvier 2003
Statut
Modérateur
Dernière intervention
21 août 2019
27
26 sept. 2004 à 17:56
un retour devrait toujours etre place dans EAX.

ciao...
BruNews, MVP VC++
0
DeAtHCrAsH
Messages postés
2670
Date d'inscription
vendredi 25 janvier 2002
Statut
Membre
Dernière intervention
6 février 2013

26 sept. 2004 à 18:01
C'est une convention a resêcté pour toute les fonctions ?
Ou alors si je fait une fonction est ce que le retour sera automatiquement stoqué dans EAX ?

Shell
0
DeAtHCrAsH
Messages postés
2670
Date d'inscription
vendredi 25 janvier 2002
Statut
Membre
Dernière intervention
6 février 2013

26 sept. 2004 à 18:15
Oui oui évidemment que je sais si c'est moi qui fait la fonction.
C'est donc une convention de le faire mais rien n'y oblige.

Merci encore BruNews.

Shell

P.S : J'essaye de faire des ptits exercices que je me suis fait sans meme connaitre les réponses c'est dire si je suis un débutant.
Mais j'essaye et j'y apprend beaucoup, puis si ca bloque je viens ici.
0