L asm et la config release

sajid_morad Messages postés 31 Date d'inscription vendredi 27 février 2004 Statut Membre Dernière intervention 26 mars 2009 - 16 nov. 2004 à 09:55
BruNews Messages postés 21040 Date d'inscription jeudi 23 janvier 2003 Statut Modérateur Dernière intervention 21 août 2019 - 19 nov. 2004 à 10:48
salut tout le monde, j ai un probleme avec la configuration release de visaul c++, le probleme c est que j ai due inserer un bout de code en asm dans mon application , et quand je la compile en release ça donne aucun erreur mais quand je l execute ça crash, disant qu il y a des adresse qu on peut pas lire , ce probleme ne se pose pas en configuration debug qui s execute sans erreur,
esqu il y a des particularité pour le mode release? , et comment faire pour évité ce genre de problemes ?
si vs pouvez m aider ça sera cool,
et Merci
A voir également:

8 réponses

cs_Arnotic Messages postés 933 Date d'inscription dimanche 1 avril 2001 Statut Membre Dernière intervention 9 janvier 2012
16 nov. 2004 à 10:46
Bonjour,

Il faudrai pour cela voir ton code. Tu as certainements commis des erreurs dans le code en ASM. Tu ne retablie peut être pas comme il faut ceraines valeur de registre ou alors une mauvaise gestion de la pile.

@+
Arnotic,
Admin CS, MVP Visual C++
0
BruNews Messages postés 21040 Date d'inscription jeudi 23 janvier 2003 Statut Modérateur Dernière intervention 21 août 2019
16 nov. 2004 à 12:14
Il y a de nombreux exemples de func en ASM dans VC++ a regarder dans mes sources, jette un oeil.

ciao...
BruNews, MVP VC++
0
sajid_morad Messages postés 31 Date d'inscription vendredi 27 février 2004 Statut Membre Dernière intervention 26 mars 2009
16 nov. 2004 à 13:04
salut, les sources sont un peu nombreux , vs pouvez me preciser quelques un , je serai trés recinaissant
merci encor une fois
0
BruNews Messages postés 21040 Date d'inscription jeudi 23 janvier 2003 Statut Modérateur Dernière intervention 21 août 2019
16 nov. 2004 à 13:41
exemples ici entre nombreux autres:
http://www.cppfrance.com/code.aspx?ID=10918
http://www.cppfrance.com/code.aspx?ID=11059

et ceci est quasi complet ASM dans un squelette C:
http://www.cppfrance.com/code.aspx?ID=10342

ciao...
BruNews, MVP VC++
0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
sajid_morad Messages postés 31 Date d'inscription vendredi 27 février 2004 Statut Membre Dernière intervention 26 mars 2009
17 nov. 2004 à 10:51
salut tot le monde, jusqu à mnt j arrive pas à trouvé ou est l erreur dans mon code asm, car ça marche trés bien en debug et il crash en release.
en faite voila mon code:
__asm push esi
__asm push edi
__asm mov ecx,dword ptr [ebp-4]

__asm mov edx,dword ptr [ecx+28h]
__asm mov edi,edx
__asm mov ebx,dword ptr [ecx+134h]

// debut boucle ==================================
__asm toto:
__asm mov edx,buffy
__asm movsx eax,word ptr [edx]
__asm
__asm mov esi,eax
__asm cmp esi,maxv
__asm jle toto1

__asm mov eax,dword ptr [i]

__asm and byte ptr [edi+eax],0
__asm jmp toto2
__asm toto1:
__asm cmp esi,minv
__asm jge toto3

__asm mov edx,dword ptr [i]
__asm or byte ptr [edi+edx],255
// else
__asm jmp toto2
__asm toto3:
__asm mov ecx,esi
__asm sub ecx,minv;
__asm imul ecx,produit;
__asm sar ecx,10;
__asm or edx,255
__asm sub edx,ecx;
__asm mov eax,dword ptr [i]
__asm mov byte ptr [edi+eax],dl

__asm toto2:
__asm add dword ptr [ebp-18h],2
__asm inc dword ptr [i]
__asm mov ecx,dword ptr [i]
__asm cmp ecx,ebx
__asm jl toto
// fin boucle =================================================
__asm pop edi
__asm pop esi

comme vs pouvez le remarquez il s agit d une boucle while,
Merci encore une fois :)
0
BruNews Messages postés 21040 Date d'inscription jeudi 23 janvier 2003 Statut Modérateur Dernière intervention 21 août 2019
17 nov. 2004 à 11:15
3eme ligne on trouve:
mov ecx,dword ptr [ebp-4]

EBP est initialise ou il faut ? idem lignes suivantes.

mets tout le bloc dans:
__asm {

}

et ne pas mettre un petit bout de fonction en asm mais au complet sinon tu ne feras que gener l'optimisation du compilo.

ciao...
BruNews, MVP VC++
0
sajid_morad Messages postés 31 Date d'inscription vendredi 27 février 2004 Statut Membre Dernière intervention 26 mars 2009
19 nov. 2004 à 10:31
salut, je crois que j ai trouvé quelque chose mais je sais pas encore d ou viens le probleme, en faite quand je fait l option maximize speed dans les setting pour la configuration release ça crash, mai quand je la met disable(debug) ça marche sans probleme .
d ou viens ce probleme? j aimerai bien savoir
et Merci :)
0
BruNews Messages postés 21040 Date d'inscription jeudi 23 janvier 2003 Statut Modérateur Dernière intervention 21 août 2019
19 nov. 2004 à 10:48
Des routines entierement ecrites en asm n'ont rien a faire en mode debug. Elles doivent etre essayees et mesurees dans des mini progs de test, puis inserees dans la version release.

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