Accueil > Forum > > > > taille d'une structure masm32
taille d'une structure masm32
samedi 6 janvier 2007 à 11:48:40 |
taille d'une structure masm32

Le cancre
|
Bonjour à tous, je cherche un moyen pour connaitre la taille d'une structure,mais je sais pas qu'elle commande faut utiliser, sizeof ou lengthof ? ..(dans les 2 cas,j'obtiens pas le bon résultat lol :)
voici comment je procéde xor ax,ax add ax,lengthof e_IP add ax,lengthof e_UDP add ax,lengthof eData mov e_IP.TotalLen,ax invoke SetDlgItemText,hWin,IDC_EDT4,offset e_IP.TotalLen
ou alors xor ax,ax add ax,sizeof e_IP add ax,sizeof e_UDP add ax,sizeof eData mov e_IP.TotalLen,ax invoke SetDlgItemText,hWin,IDC_EDT4,offset e_IP.TotalLen
merci d'avance pour vos réponses
|
|
samedi 6 janvier 2007 à 14:29:18 |
Re : taille d'une structure masm32

BruNews
|
Dernier param de SetDlgItemText est l'adresse d'une chaine, je ne suis pas certain que ce soit le cas dans ton code.
ciao... BruNews, MVP VC++
|
|
samedi 6 janvier 2007 à 15:03:43 |
Re : taille d'une structure masm32

ToutEnMasm
|
Salut, Il y a effectivement l'erreur du au mauvais paramètre. Sizeof renvoie la taille en bytes (modifier de l'alignement s'il existe). lengthof renvoie le nombre de variables (de taille n bytes) constituant la chaîne. ToutEnMasm
|
|
samedi 6 janvier 2007 à 16:47:50 |
Re : taille d'une structure masm32

Le cancre
|
si je comprends bien,j'ai juste à mettre la somme dans l'adresse d'une chaine
d'habitude, j'utilise cette variable .data? BufferTxt dd 128 dup (?) .... je remplis mes structures suivant les valeurs des texbox et à la fin,je fais la somme xor ax,ax add ax,sizeof e_IP add ax,sizeof e_UDP add ax,sizeof eData mov e_IP.TotalLen,ax add eax,0FFFFh mov BufferTxt,eax invoke SetDlgItemText,hWin,IDC_EDT4,offset BufferTxt et comme résultat j'obtiens 1B;8;1; dans ma textbox et même si sur mon interface, je change les valeurs de ma structure le résultat ne change pas..depuis 1h30 je m'arrache les cheveux : ) mais je ne trouve pas
|
|
samedi 6 janvier 2007 à 17:52:33 |
Re : taille d'une structure masm32

BruNews
|
eax contient une valeur en binaire, il y a toute chance qu'il y ait des octets 0 dedans et c'est le terminateur d'une chaine. Il faut transformer le binaire de base 2 vers base 10.
ciao... BruNews, MVP VC++
|
|
samedi 6 janvier 2007 à 19:47:54 |
Re : taille d'une structure masm32

ToutEnMasm
|
Salut, Il faut transformer le nombre en caractères ascii visualisables avec une fonction du genre atodw(masm). .data texte db 30 dup () .code invoke atodw,BufferTxt,addr texte invoke SetDlgItemText,hWin,IDC_EDT4,addr texte Le dw 1444h deviendra db 31h,34h,34h,34h,0. et s'affichera 1444 ToutEnMasm
|
|
dimanche 7 janvier 2007 à 17:11:33 |
Re : taille d'une structure masm32

Le cancre
|
Bonjour à vous 2 et merci pour votre aide c'est sympa
ToutEnMasm,j'ai eu des erreurs avec ton code .data texte db 30 dup () <- erreur = invalid data initializer .code invoke atodw,BufferTxt,addr texte<- erreur = error A2136: too many arguments to INVOKE invoke SetDlgItemText,hWin,IDC_EDT4,addr texte
voici mon nouveau code en m'aidant de vos réponses .data? BufferTxt dd 30 dup (?)
.code mov e_IP.TotalLen,sizeof e_IP mov esi,offset e_IP.TotalLen invoke dwtoa ,esi,addr BufferTxt invoke SetDlgItemText,hWin,IDC_EDT4,offset BufferTxt
comme résultat, j'ai bien des chiffres et plus de petit carré...ouf!..enfin : ) mais le résultat est pas bon
pour bien comprendre mes erreurs et me faire une idée sur la chose, est-ce qu'on peut me faire une petite démo avec une structure qui contient 2 à 3 variables(texte,et chiffre) et le passage du code qui permet d'obtenir la taille correct de cette structure
Merci d'avance
|
|
dimanche 7 janvier 2007 à 17:51:39 |
Re : taille d'une structure masm32

BruNews
|
A quoi rime tout cela en ASM ??? La taille d'une struct doit etre connue à l'assemblage alors te suffit de jeter un oeil sur la struct, la somme des tailles de ses membres est la taille totale et basta. En ASM pas de compilo pour aligner les données correctement à ta place, responsabilité du programmeur est pleine et entière/
Exemple qui montre ce que ferait mauvais programmeur alors qu'il faudrait ajouter un membre WORD pour avoir un align correct de 4. Ici le prog affichera bien 6, ce qui est assurément mauvais je le répète.
.586 .model flat, stdcall option casemap :none option prologue:none option epilogue:none
include \masm32\include\windows.inc include \masm32\include\kernel32.inc include \masm32\include\user32.inc
includelib \masm32\lib\kernel32.lib includelib \masm32\lib\user32.lib
BIDON STRUCT x DWORD ? y WORD ? BIDON ENDS
.data
buf DB 24 dup(0) szappname DB "Taille",0
.code start: ALIGN 4 mov ecx, sizeof BIDON mov edx, offset buf call ultoa push 0 push offset szappname push offset buf push 0 call MessageBox progEnd: push 0 call ExitProcess
ultoa PROC ; IN: ECX = INT32, EDX = *psz or ecx, ecx jnz short L1 lea eax, [edx+1] mov byte ptr[edx], 48 mov byte ptr[eax], cl ret 0 L1: mov [esp-4], edi mov [esp-8], edx mov edi, edx L2: mov eax, -858993459 mul ecx mov eax, edx shr eax, 3 mov edx, ecx lea ecx, [eax+eax*8] add ecx, eax sub edx, ecx add dl, 48 mov [edi], dl mov ecx, eax inc edi test eax, eax jnz short L2 mov byte ptr[edi], al mov [esp-12], edi mov eax, [esp-8] L3: dec edi mov dl, [eax] mov cl, [edi] mov [edi], dl mov [eax], cl inc eax cmp eax, edi jb short L3 mov eax, [esp-12] mov edi, [esp-4] ret 0 ultoa ENDP
end start
ciao... BruNews, MVP VC++
|
|
dimanche 7 janvier 2007 à 18:28:20 |
Re : taille d'une structure masm32

Le cancre
|
A quoi rime tout cela en ASM ??? je tente de faire un générateur de trame udp,j'ai des textbox sur mon interface pour remplir ma structure,c'est pour cela que je ne connais pas la taille de cette structure à l'avance car elle est vide au départ, enfin bon...merci pour l'exemple du mauvais programmeur
|
|
dimanche 7 janvier 2007 à 19:24:36 |
Re : taille d'une structure masm32

BruNews
|
On connait par force la taille d'une structure puisque c'est justement fait pour cela, réserver de la place pour un nombre d'octets sinon ce n'est pas une structure mais une alloc dynamique de mémoire (voir VirtualAlloc).
ciao... BruNews, MVP VC++
|
|
Cette discussion est classée dans : ip, add, ax, sizeof, lengthof
Répondre à ce message
Sujets en rapport avec ce message
Deplacement [ par FireMan57 ]
Bonjour, je débute en asm x86 et j'aimerais savoir comment faire pour effectuer correctement le déplacement d'un personnage en mode graphique. J'ai dé
interruption [ par aboulkhir ]
salut j essaye de gerer le clavier en interruption en asselmbleur voila mon programme je travaille sous debug en invite de commande de windowsclimo
tp assembleur i3 pour la FST [ par babbiverus ]
main proc mov ax,@Datamov ds, axmov si,offset tabmov cx, 16mov bx,0saisie: mov dx,offset commande;afficher "saisir un nombre"mov ah,9int 21hmov ah, 1
asm dos sous xp probleme adressage memoire ecran [ par blood01 ]
Bonjour, Voilà, j'ai toujours aimé programmer à mes heures perdues et depuis tout un temps, j'ai décidé de me lancer dans l'assembleur, j'ai d'abord f
fatal error LNK1190 [ par WildChild54 ]
Bonjour à tous!Eh bien voilà, je voudrais créer un petit programme affichant l'heure (je sais il y en a déjà plusieurs qui en ont parlé ici) mais j'ai
diffrerence entre (e)ax et ax , (e)bx et bx, ... [ par dyroj ]
bonjour a tous,je suis en periode d'aprentissage du language assembleur et j'ai une petite quetion consernant le e (extented) devant le nom d'un regis
question sur le language asm [ par dyroj ]
bonjour,j'ai qulque question sur l'asm :-quand je fait un : mov ax, 10 , quesqui va dans le registre (ladresse de 10 dans la ram, ou 10).-pourquoi se
Affichage décroissant et alphabétique de 2 listes(Nom_Prénom et Note) [ par m_didi9 ]
[code=autre]Data SEGMENT Mess1 DB 10,13, 'Entrez la liste des Noms :' DB 10, 13, '$' Mess2 DB 'Entrez la liste des Notes :' DB 10, 13, '$' Mess3
[ASM] Que la vie était simple sous MS-DOS 16 bits (scan mémoire physique) [ par dogloop ]
J'ouvre ce topic pour essayer de mieux comprendre quelles sont les différentes façons pour accéder à toute la RAM (et aussi peut être la ROM) de mon P
Livres en rapport
|
Derniers Blogs
IMAGINE CUP 2012, MAKE A SIGN EN FINALEIMAGINE CUP 2012, MAKE A SIGN EN FINALE par junarnoalg
Voilà qui est fait, la nouvelle est officielle ! L'équipe belge "Make a Sign" va au pays des kangourous défendre son projet dans la catégorie Software Design. http://www.imaginecup.com/CompetitionsContent/Competition/WorldwideFinalists.aspx V...
Cliquez pour lire la suite de l'article par junarnoalg KINECT 1.5 IS OUT !KINECT 1.5 IS OUT ! par Vko
La version 1.5 du Kinect For Microsoft vient tout juste de sortir ! Plein de nouveautés: Tracking de squelette en Near Mode Détection en position assise Détection faciale avec un SDK dédié Documentation et des guideline (enfin) Un out...
Cliquez pour lire la suite de l'article par Vko LES ACTUALITéS DE LA SEMAINE SUR C2I.FR (14 MAI - 20 MAI) LES ACTUALITéS DE LA SEMAINE SUR C2I.FR (14 MAI - 20 MAI) par richardc
Mise à jour des Web API du 14 Mai
Réservez dès maintenant votre journée du 20 juin pour le Windows Azure Dev Camp 2012 à Paris
Mise à jour de Team Foundation Service
MechCommander 2 sur Windows 8
Entity Framework 5 Release Candidate e...
Cliquez pour lire la suite de l'article par richardc REACTIVE EXTENSIONS : CONSOMMER DES SERVICES AVEC RX PARTIE 3, LES PIèGES à éVITERREACTIVE EXTENSIONS : CONSOMMER DES SERVICES AVEC RX PARTIE 3, LES PIèGES à éVITER par Groc
Une mauvaise utilisation de rx lors de l'écriture d'une couche d'accès à des services peut conduire à des cas embarassants avec des erreurs mal gérées, des appels qui ne partent lorsqu'ils le devraient, et même des résultats incorrects . le tout nuis...
Cliquez pour lire la suite de l'article par Groc SHAREPOINT BLOG SITE, PROBLèME D'ARCHIVESSHAREPOINT BLOG SITE, PROBLèME D'ARCHIVES par junarnoalg
Dernièrement, nous avons migré le site
myTIC
vers un nouveau serveur SharePoint 2010. Dans les contenus que nous vouloins récupérer, nous avions un certain nombre de blogs.
Nous avons utilisé les commandes Power...
Cliquez pour lire la suite de l'article par junarnoalg
Logiciels
sDEVIS-FACTURES vlPRO (8.1.0.3)SDEVIS-FACTURES VLPRO (8.1.0.3)sDEVIS-FACTURES vlPRO a été mis au point pour les particuliers, créateurs, entrepreneurs, artisa... Cliquez pour télécharger sDEVIS-FACTURES vlPRO 974 Application Server (12.2.4.6)974 APPLICATION SERVER (12.2.4.6)Développez de puissantes applications dans un environnement de 'cloud computing', clusterisé, séc... Cliquez pour télécharger 974 Application Server vPicture (1.4.2.1)VPICTURE (1.4.2.1)Avec vPicture, hébergez vos images facilement et rapidement.
vPicture est un utilitaire simple, ... Cliquez pour télécharger vPicture Easy-Planning (2.2.1.6)EASY-PLANNING (2.2.1.6)Easy-Planning permet de créer des plannings sous la représentation de diagrammes et est adapté au... Cliquez pour télécharger Easy-Planning COM-BACKUP (2.0)COM-BACKUP (2.0)
COM-BACKUP est un logiciel de sauvegarde qui permet de planifier les sauvegardes de vos dossiers ...
Cliquez pour télécharger COM-BACKUP
|