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
[MIX10] KEYNOTE DEUXIèME JOURNéE - INTERNET EXPLORER 9, HTML5, VISUAL STUDIO 2010, ODATA[MIX10] KEYNOTE DEUXIèME JOURNéE - INTERNET EXPLORER 9, HTML5, VISUAL STUDIO 2010, ODATA par cyril
Le deuxième keynote du mix fut très riche en contenu. Internet Explorer 9 Juste un après le lancement de Internet Explorer 8, Microsoft a dévoilé les nouveautés de Internet Explorer 9. Désormais, IE supportera HTML5, SVG et CSS3. L'élément ...
Cliquez pour lire la suite de l'article par cyril CERTIFICATIONS BETA .NET 4CERTIFICATIONS BETA .NET 4 par KooKiz
Les inscriptions pour les certifications beta .NET 4 ont commencé. L'inscription est offerte pour les examens suivants : - 71-511, TS: Windows Applications Development with Microsoft .NET Framework 4 - 71-515, TS: Web Applications Development with...
Cliquez pour lire la suite de l'article par KooKiz [MIX 2010] - MICROSOFT TRANSLATOR TECHNOLOGY PREVIEW V2[MIX 2010] - MICROSOFT TRANSLATOR TECHNOLOGY PREVIEW V2 par redo
J'imagine que la plupart d'entre vous connaissent bien et utilisent le service de traduction de Google, mais connaissez-vous celui de Microsoft . Microsoft Translator ? Effectivement, Microsoft nous annoncé le lancement version 2 de la Technologie Preview...
Cliquez pour lire la suite de l'article par redo LANCEMENT EN PREVIEW DE CYCLONE LORS DES TECHDAYS 2010!LANCEMENT EN PREVIEW DE CYCLONE LORS DES TECHDAYS 2010! par MPOWARE
Toutes les vidéos de ce lancement sont en ligne!
Partie I - Intro
http://www.youtube.com/watch?v=LkQzTQ8T6CA
Partie II - Démo 1
http://www.youtube.com/watch?v=drAhYQ7lqvo
Partie III - Démo 2
http://www.youtube.com/watch?v=c8KM_1Gqybc...
Cliquez pour lire la suite de l'article par MPOWARE [WP7] JE NE VEUX PAS D'UN NOUVEL IPHONE[WP7] JE NE VEUX PAS D'UN NOUVEL IPHONE par FREMYCOMPANY
Je pense qu'ils ont besoin d'une piqure de rappel chez Microsoft : c'est bien gentil d'avoir une interface jolie, mais si c'est pour avoir un truc qui ne convainct pas dedans, c'est peine perdue.
---->
Système ouvert ----> Fermé ?
P...
Cliquez pour lire la suite de l'article par FREMYCOMPANY
Forum
ASSEMBLEURASSEMBLEUR par solleil
Cliquez pour lire la suite par solleil RE : CSHARPRE : CSHARP par ghuysmans99
Cliquez pour lire la suite par ghuysmans99
Logiciels
Academy System (10.9.4.0)ACADEMY SYSTEM (10.9.4.0)Logiciel de gestion des établissements.
- élèves/étudiants (inscription, dossier, absence...)
-... Cliquez pour télécharger Academy System Xilisoft Convertisseur Vidéo Ultimate (5.1.39.0305)XILISOFT CONVERTISSEUR VIDéO ULTIMATE (5.1.39.0305)Xilisoft Convertisseur Vidéo Ultimate est un outil puissant de conversion vidéo, facile à utilise... Cliquez pour télécharger Xilisoft Convertisseur Vidéo Ultimate Xilisoft DVD Ripper Ultimate (5.0.64.0304)XILISOFT DVD RIPPER ULTIMATE (5.0.64.0304)Xilisoft DVD Ripper Ultimate est un logiciel excellent pour copier et convertir DVD vers presque ... Cliquez pour télécharger Xilisoft DVD Ripper Ultimate Rigs of Rods (63.3)RIGS OF RODS (63.3)c'est un jeu de multi-simulation camions,autobus voitures, avions, bateaux, hélicoptère avec défo... Cliquez pour télécharger Rigs of Rods
|