-------------------------------
Réponse au message :
-------------------------------
> Tu dois d'abord mettre dans un registre de pointage la valeur de l'adresse afin de la déférencer:
>
> MaFonction PROC pstruct:DWORD > les di, pstruct > mov ax, word ptr es:[di].membre2 > ret > MaFonction ENDP > |
>
Core Breaker 
>
>
> -------------------------------
> Réponse au message :
> -------------------------------
>
> > Salut,
> >
> > voila mon pb, j'aimerai créer une fonction en asm qui reçoit un pointeur sur un élément de type structure, jusque-là pas de pb
> >
> > mais comment modifier les éléments de la structure pointée ?
> >
> > ex en C(++) on fait ça
> >
> >
> >
> > typedef struct { > > unsigned long membre1; > > unsigned short membre2; > > } MyStruct; > > > > void MaFonction(MyStruct* pStruct) > > { > > pStruct->membre1 = 0xFDE8; > > pStruct->membre2 = 0xFF; > > } > > |
> >
> > La question est simple (mais je n'ai pas encore trouvé la réponse) comment faire ça en ASM ?
> > Surtout le code pStruct->membre1 = 0xFDE8;
> >
> > decrarer la structure ca je sait le faire
> >
> > MYSTRUCT STRUCT > > membre1 DWORD ? > > membre2 WORD ? > > MYSTRUCT ENDS > > |
> >
> > un pointeur (une adresse en memoire) c'est un entier codée sur 32bits donc je suppose que le parametre a passer a la fonction asm est un DWORD ?
> >
> > MaFonction PROC pstruct:DWORD ; > > ; ??? > > ret > > MaFonction ENDP > > |
> > mais pour le reste je sait pas

> > un petit exemple pour m'aider à assimiler la technique se serait sympa ;)
>
Le compilateur me retourne une erreur "undefined symbol : immin" (immin est un membre de la structure)
ps: je ne sais pas si c'est important, mais la fonction appelante (celle qui transmet le pointeur a MaFonction ASM) et une fonction écrite en C