Tien j'ai fais un listing de ta fonction et de la mienne. Voici la tienne:
mov edx, DWORD PTR _value$[esp-4] push edi mov edi, edx or ecx, -1 xor eax, eax repne scasb mov eax, DWORD PTR _count$[esp] pop edi not ecx dec ecx sub edx, eax mov BYTE PTR [ecx+edx], 0
12 opérations et ce sans compter les opérations de strlen
Voici la mienne:
mov eax, DWORD PTR _value$[esp-4] inc eax cmp BYTE PTR [eax], 0 je SHORT $L57476 $L57475: mov cl, BYTE PTR [eax+1] inc eax test cl, cl jne SHORT $L57475 $L57476: sub eax, DWORD PTR _count$[esp-4] mov BYTE PTR [eax], 0
10 opérations
C'est pas moi qui a inventé ce codage. C'est généré avec le compilateur. En plus, j'ai activé les options du compilateur pour une optimisation de la vitesse.
___________________________________________ Les plus grands esprits trouvent toujours une solution
|