Optimiser un codes asm

Signaler
Messages postés
31
Date d'inscription
vendredi 27 février 2004
Statut
Membre
Dernière intervention
26 mars 2009
-
Messages postés
4030
Date d'inscription
mardi 13 mai 2003
Statut
Modérateur
Dernière intervention
23 décembre 2008
-
salut tout le monde , j ai une parti du code en c++, que j ai voulu optimiser , le l ai reécri en asm , mai ça donne pas grand chose, si quelqu un pourrai m aider ça sera trop cool
voila la boucle en c++:
for ( i= 0;i< iProduit; i++,buffy++) // buffy un tableau de short
{ if (*buffy > maxv)
p_iImagePixelOGL[i] = 0;/* p_iImagePixelOGL un tableau de BYTE*/
else if (*buffy < minv)
p_iImagePixelOGL[i] = 255;
else
p_iImagePixelOGL[i] = (BYTE)(255-(((*buffy-minv) * produit) >> 10));

}
//===================================
la traduction en asm donne :
__asm
{
// if (*buffy > maxv)
toto: mov edx,dword ptr [ebp-18h]
movsx eax,word ptr [edx]
cmp eax,dword ptr [ebp-0Ch]
jle toto1
mov ecx,dword ptr [ebp-4]
mov edx,dword ptr [ecx+28h]
mov eax,dword ptr [i]
mov byte ptr [edx+eax],0
jmp toto2
toto1: mov ecx,dword ptr [ebp-18h]
movsx edx,word ptr [ecx]
cmp edx,dword ptr [ebp-8]
jge toto3

mov eax,dword ptr [ebp-4]
mov ecx,dword ptr [eax+28h]
mov edx,dword ptr [i]
mov byte ptr [ecx+edx],0FFh
jmp toto2
toto3: mov eax,dword ptr [ebp-18h]
movsx ecx,word ptr [eax]
sub ecx,dword ptr [ebp-8];
imul ecx,dword ptr [ebp-10h]; sar ecx,10; mov edx,255
sub edx,ecx;
mov eax,dword ptr [ebp-4]
mov ecx,dword ptr [eax+28h]
mov eax,dword ptr [i]
mov byte ptr [ecx+eax],dl

toto2:
add dword ptr [ebp-18h],2
inc dword ptr [i]
mov eax,dword ptr [ebp-4]
mov ecx,dword ptr [i]
cmp ecx,dword ptr [eax+134h]
jl toto
}

sachant que je développe en visual c++;
Merci

1 réponse

Messages postés
4030
Date d'inscription
mardi 13 mai 2003
Statut
Modérateur
Dernière intervention
23 décembre 2008
22
Va voir sur ASMfr.com

Tu as sans doute plus de chances de trouver ton bonheur là-bas.

Manu
-------------------------------------------
Une question bien posée, c'est une chance de réponse bien adaptée.