link25000
Messages postés2Date d'inscriptionjeudi 5 mars 2009StatutMembreDernière intervention 4 mai 2009
-
4 mai 2009 à 01:09
BruNews
Messages postés21040Date d'inscriptionjeudi 23 janvier 2003StatutModérateurDernière intervention21 août 2019
-
4 mai 2009 à 09:33
bonsoir a tous voila j'essai d'ercir un petit programme en MASM (intel 32bit)
je l'est fais en C est j'essay de suivre pas a pas en asm mais je me suis blocké di que j'ai comancer
voici ce que j'ai fai
code c
typedefstructetudiant{charnom[26];intnot[20];}etud;//FONCTION DE SAISIE voidsaisie(etudt[100],intx){inti=1;do{printf("Etudiant numero %d \n-----------------\n",i);printf("entrez le nom : ");gets(t[i-1].nom);printf("entrez le not : ");gets(t[i-1].not);i++;}while(i<=100&&i<=x);}
et voici le .asm
INCLUDE Irvine32.inc
INCLUDE Macros.inc
;------------------- Structure -----------------
Etudiant STRUCT
Nom BYTE 30 DUP(0)
Note DWORD 0
Etudiant ENDS
;=============================================================
.data
t Etudiant <>
BruNews
Messages postés21040Date d'inscriptionjeudi 23 janvier 2003StatutModérateurDernière intervention21 août 2019 4 mai 2009 à 09:33
Je remets ta question avec des sauts de ligne en espérant que tu le feras la prochaine fois.
typedef struct etudiant {
charnom[26];
int not[20];
} etud;
//FONCTION DE SAISIE
void saisie(etudt[100], int x)
{
inti=1;
do {
printf("Etudiant numero %d \n-----------------\n",i);
printf("entrez le nom : ");
gets(t[i-1].nom);
printf("entrez le not : ");
gets(t[i-1].not);i++;
} while(i <= 100 && i <= x);
}
et voici le .asm
INCLUDE Irvine32.inc
INCLUDE Macros.inc
Etudiant STRUCT
Nom BYTE 30 DUP(0)
Note DWORD 0 Etudiant
ENDS
mReadStr ?????est ce que c juste ce que j'ai fait sinon svp vous pouvez m'aidé
-------------------------------------
Quand on veut faire une pure transcription du C es ASM, il faut d'abord assurer d'avoir fait un code C correct.
typedef struct etudiant {
charnom[26];
int not[20];
} etud;
NON et NON !!!
int not; doit être aligné sur 4, donc:
typedef struct etudiant {
charnom[28]; // 28 et non 26
int not[20];
} etud;
AUSSI GRAVE:
inti=1;
do {...
NIET et encore NIET !!!
l'indexation commence à 0 jusque nbrElem - 1.