Fonction C equ en ASM

link25000 Messages postés 2 Date d'inscription jeudi 5 mars 2009 Statut Membre Dernière intervention 4 mai 2009 - 4 mai 2009 à 01:09
BruNews Messages postés 21040 Date d'inscription jeudi 23 janvier 2003 Statut Modérateur Dernière intervention 21 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  <>

.code
main PROC

       mGotoxy 0,0
       mWriteLn "Etudiant numero"

       mGotoxy 0,2
       mWrite "Veuillez saisir votre nom: "
       mReadStr ?????

est ce que c juste ce que j'ai fait sinon svp vous pouvez m'aidé

1 réponse

BruNews Messages postés 21040 Date d'inscription jeudi 23 janvier 2003 Statut Modérateur Dernière intervention 21 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


.data
  t Etudiant  <>


.code
main PROC
  mGotoxy 0,0
  mWriteLn "Etudiant numero"
  mGotoxy 0,2
  mWrite "Veuillez saisir votre nom: "


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.

ciao...
BruNews, MVP VC++
0
Rejoignez-nous