Assembleur et procedure.

Vous débutez et vous avez besoin d'aide ? N'hésitez pas à poser vos questions
andrebernard
Messages : 58
Inscription : jeu. 22/déc./2005 11:23

Assembleur et procedure.

Message par andrebernard »

Bonjour

J'ai un code que m'a gentiment donné SPH et qui contiens de l'assembleur.

Code : Tout sélectionner

#src=0 
 #dst=1 
 Lecture.l 
 Byte.b 
 Hexa.l 
 Source$ = FichierSource$
 Destin$ = Destination$

 If ReadFile(#src, source$) 
  lg = Lof(#src) 
 Else 
  MessageRequester("Erreur", "Fichier impossible à lire...") 
  End 
 EndIf 

 If lg=0 
  MessageRequester("Inutilité", "Votre fichier est vide !") 
  End 
 EndIf 

 If CreateFile(#dst, destin$) = 0 
  MessageRequester("Erreur", "Fichier impossible à créer...") 
  End 
 EndIf 

 Temps = GetTickCount_() 
 Reste = lg%4 
 Paquet = lg/4 

 While paquet>0 
 
  Lecture.l = ReadLong(#src) 
  !MOV  eax,[v_Lecture] 
  !BSWAP  eax 
  !MOV [v_Hexa],eax 
  Hexa$ = RSet(Hex(Hexa.l), 8, "0") 
  WriteString(#dst, Hexa$) 
  Paquet - 1 
 
 Wend 

 While Reste > 0 
  
  Byte.b = ReadByte(#src) 
  Hexa$ = RSet(Hex(Byte.b), 2, "0") 
  WriteString(#dst, Hexa$) 
  Reste-1 
 
 Wend 

 CloseFile(#src) 
 CloseFile(#dst) 
 MessageRequester("Etat du programme", "Conversion finie " +Str( GetTickCount_()-temps )+" ms") 
Voila, il marche d'enfer, mais quand je le met dans une procedure, j'ai un message d'erreur.

J'y connait rien a l'ASM, il doit y avoir une astuce.
Je l'ai demandé à l'auteur, mais il ne doit pas etre devant son PC.

Si quelqu'un la connait
Merci.
Anonyme2
Messages : 3518
Inscription : jeu. 22/janv./2004 14:31
Localisation : Sourans

Message par Anonyme2 »

Vite fait,

déclare tes variables en global car les procédures utilisent des variables locales (sur la pile)
andrebernard
Messages : 58
Inscription : jeu. 22/déc./2005 11:23

Message par andrebernard »

Je te remercie beaucoup de ta connaissance et de ta rapidité, c'etait bien ça.

Excelente journée
Merci MAITRE
Répondre