Accueil > Forum > > > > (Debutant en ASM) (MASM) pointeur sur une structure
(Debutant en ASM) (MASM) pointeur sur une structure
lundi 5 mai 2003 à 21:56:07 |
(Debutant en ASM) (MASM) pointeur sur une structure

Otaku
|
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 ;)
|
|
mardi 6 mai 2003 à 11:20:09 |
Re : (Debutant en ASM) (MASM) pointeur sur une structure

TangiX
|
pStruct->membre1 = 0xFDE8; pStruct->membre2 = 0xFF; mov dword ptr[pstruct], 0FDE8h mov word ptr [pstruct + 4], 0FFh |
c doit marché ca ya peut etre mieux j'connais pas bien les strutures en asm ps:y manque le plus entre pstruct et 4 (s'affiche pa ds l'apercu)  TangiX 
|
|
mardi 6 mai 2003 à 18:04:24 |
Re : (Debutant en ASM) (MASM) pointeur sur une structure

Otaku
|
Marche po  Y'a pas d'erreur à la compilation, mais dans la fonction appelante là contenue de la structure n'est pas modifiée
|
|
mardi 6 mai 2003 à 18:05:53 |
Re : (Debutant en ASM) (MASM) pointeur sur une structure

Otaku
|
Marche po Y'a pas d'erreur à la compilation, mais dans la fonction appelante là contenue de la structure n'est pas modifiée
|
|
mardi 6 mai 2003 à 19:18:03 |
Re : (Debutant en ASM) (MASM) pointeur sur une structure

Dean
|
Bonjour, Je ne sais pas si ça marche, mais bon : .data? pStruct MYSTRUCT <?> .code mov pStruct.membre1, FDE8h Bon, il reste à intégrer ceci dans une fonction mais je pense que ça devrait ressembler à ça... Dean - [ Lien ]------------------------------- Réponse au message : ------------------------------- > Marche po  > > Y'a pas d'erreur à la compilation, mais dans la fonction appelante là contenue de la structure n'est pas modifiée > >
|
|
mardi 6 mai 2003 à 19:43:44 |
Re : (Debutant en ASM) (MASM) pointeur sur une structure

Otaku
|
------------------------------- Réponse au message : ------------------------------- > Bonjour, > > Je ne sais pas si ça marche, mais bon : > > .data? > pStruct MYSTRUCT <?> > > .code > mov pStruct.membre1, FDE8h > > Bon, il reste à intégrer ceci dans une fonction mais je pense que ça devrait ressembler à ça... > > Dean - [ Lien ]> > > ------------------------------- > Réponse au message : > ------------------------------- > > > Marche po  > > > > Y'a pas d'erreur à la compilation, mais dans la fonction appelante là contenue de la structure n'est pas modifiée > > > > > pas ça non plus la fonction que je veux créer reçoit comme paramètre un pointeur sur une structure et doit un modifier les membres directement à l'adresse pointée
|
|
mardi 6 mai 2003 à 20:10:11 |
Re : (Debutant en ASM) (MASM) pointeur sur une structure

CoreBreaker
|
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 ;)
|
|
mardi 6 mai 2003 à 20:14:09 |
Re : (Debutant en ASM) (MASM) pointeur sur une structure

CoreBreaker
|
Pardon, je me suis tompé, pour la modifier, mais quand même 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, valeur mov word ptr es:[di].membre2, ax 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 ;)
|
|
mardi 6 mai 2003 à 20:17:35 |
Re : (Debutant en ASM) (MASM) pointeur sur une structure

CoreBreaker
|
J'oubliai tu peux faire ça aussi: MaFonction PROC pstruct:DWORD les di, pstruct mov ax, valeur mov word ptr es:[di.membre2], ax ;chager la place de .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 ;)
|
|
mardi 6 mai 2003 à 20:53:20 |
Re : (Debutant en ASM) (MASM) pointeur sur une structure

Otaku
|
------------------------------- 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
|
|
Cette discussion est classée dans : code, asm, structure, pointeur, pstruct
Répondre à ce message
Sujets en rapport avec ce message
algo pour jeu de shoot en asm [ par cable ]
Bonjourje suis un jeune débutant en programmation en assembleur et je cherche l'algo (voir le code source) d'un jeu de shoot 'em up en scroling horizo
ASM old-style / ASM ancienne méthode [ par TehWan ]
Salut, j'aimerais bien coder en assembly de l'ancienne façon, c'est-à-dire sans aucune procédures, simplement des "labels". (excusez mes anglicismes,
Variables sour ASM pour 8086 [ par koopje ]
Bonjour à tous,Etudiant, je suis en train de m'exercer avec Emu8086, un émulateur (et assembleur, au passage) d'assembleur sour 8086. J'ai tenté de f
débutant en asm [ par eax ]
salutje débute en asm (avec nasm) et j'arrive pas à assembler mon premier code lolsection .datamsg db 'Hello world$'section .codedebut: lea dx,msg mov
nasm - mémoire read-only [ par Funto66 ]
Bonjour,je suis en train d'écrire des tutoriaux pour le site Coder-Studio (http://www.coder-studio.com/?page=tutoriaux) mais pour la création du tutor
appeller du C en asm [ par S2R ]
Bonjour, je voudrait savoir comment utiliser un code écrit en C dans un code assembleur.
portabilité du code [ par sajid_morad ]
salut tout le monde, je programme avec le visaul c++ , et j ai inserer un code asm dans mon programme, sashant que j ai un micro pricesseur pentium, v
Utiliser une fonction ASM compilée (sous MASM) sous Dev-C++ ? [ par skirby ]
Bonjour, j'essaye désespérément d'intégrer une fonction assembleur (compilée sous MASM) dans Dev-C++ (v4.9.9.2) Voici mon code C : /*********
W32Dasm et code ASM [ par bundyboss ]
Salut a vous tous!!Presque tout est dans le titre..En fait j'aimerai savoir si le code ASM que ressort W32Dasm ou autre programme du genre et directem
Code HUFFMAN en asm 68000 [ par arnaud gasnier ]
salut,je voulais savoir si qqun pouvait m'aider pour trouver comment coder en ASM 68000 l'algo de huffman pour compresser un petit texte. le tout débu
Livres en rapport
|
Derniers Blogs
[FRAMEWORK 4] LES TASKS ET LE THREAD UI[FRAMEWORK 4] LES TASKS ET LE THREAD UI par fathi
Je viens de passer quelques temps au TechDay's et j'ai pu voir pas mal de session intéressante. Par contre une chose m'a un peu étonné lors de certaines de ces sessions qui abordaient les améliorations du framework .NET (donc le 4.5) : en gros, bea...
Cliquez pour lire la suite de l'article par fathi WORKFLOW FOUNDATION 3 A UN PIED DANS LA TOMBEWORKFLOW FOUNDATION 3 A UN PIED DANS LA TOMBE par JeremyJeanson
Depuis déjà un an, je conseille vivement les utilisateurs de Workflow Foundation 3 à migrer vers la version 4. L'information qui va suivre ne devrait donc pas trop prendre au dépourvu les personnes qui m'ont suivi. Je profite de ce poste, pour faire le re...
Cliquez pour lire la suite de l'article par JeremyJeanson TECHDAYS PARIS 2012 : NOUVELLES TENDANCES DU POSTE DE TRAVAIL - BRING YOUR OWN PCTECHDAYS PARIS 2012 : NOUVELLES TENDANCES DU POSTE DE TRAVAIL - BRING YOUR OWN PC par ROMELARD Fabrice
Speakers: Thierry Rapatout, Antoine Petit et Xavier Trebbia Cette session entre dans le cadre des RDV Décideurs des TechDays 2012, elle est liée à la consumérisation de l'IT et la mise en place du "DeskTop as a Service" dans de plus en ...
Cliquez pour lire la suite de l'article par ROMELARD Fabrice TECHDAYS PARIS 2012 : SYSTEM CENTER SERVICE MANAGER 2012 VUE D'ENSEMBLETECHDAYS PARIS 2012 : SYSTEM CENTER SERVICE MANAGER 2012 VUE D'ENSEMBLE par ROMELARD Fabrice
Speakers: Julien Marechal, Gautier Confiant, Sébastien MEYER La session débute par le positionnement de la solution System Center par rapport aux concepts d'organisation ITIL. Le portail du catalogue de se...
Cliquez pour lire la suite de l'article par ROMELARD Fabrice TECHDAYS PARIS 2012 : PLEINIèRE SECOND JOURTECHDAYS PARIS 2012 : PLEINIèRE SECOND JOUR par ROMELARD Fabrice
Après une première journée dédiée aux développeurs, cette seconde journée est dédiée au monde des entreprises et de ses applications. Ainsi, cette pleinière est dédiée à faire un 360 de l'évolution des applications Business aux demandes ac...
Cliquez pour lire la suite de l'article par ROMELARD Fabrice
Logiciels
Academy System (17.2.1.0)ACADEMY SYSTEM (17.2.1.0)Logiciel de gestion des établissements.
- élèves/étudiants (inscription, dossier, absence...)
-... Cliquez pour télécharger Academy System Easy-Planning (1.0.0.1)EASY-PLANNING (1.0.0.1)Basé sur les mêmes principes que MyPlanning, Easy-Planning permet de créer des plannings sous la ... Cliquez pour télécharger Easy-Planning COLLECTOR PLUS (3.00B)COLLECTOR PLUS (3.00B)COLLECTOR PLUS version 3.00B est un logiciel utilisant une base de données alimentée par :
- L... Cliquez pour télécharger COLLECTOR PLUS PONAMEDIA PREMIUM - HELLLOOO FLASH DEMO (V7.4)PONAMEDIA PREMIUM - HELLLOOO FLASH DEMO (V7.4)PONAMEDIA TV DEVIENS HELLLOOO FLASH
LA TV SUR VOTRE ORDINATEUR.
Toute une plateforme Multi... Cliquez pour télécharger PONAMEDIA PREMIUM - HELLLOOO FLASH DEMO LettresFaciles 2011 (8.0.0.1)LETTRESFACILES 2011 (8.0.0.1)LettresFaciles est un logiciel facilitant la création et la rédaction de lettres types.
Son inte... Cliquez pour télécharger LettresFaciles 2011
|