Pour l'instant, le code de RGB() n'est pas simplifié, mais il n'est pas du tout exclu de la remplacer par une macro du genre :
quand elles seront dispo, ce qui voudra dire que ce sera remplacé par une valeur constante si tu utilises que des constantes.
Pour ta deuxieme question, je pensais que la reponse était oui, mais apparement le compilateur n'est pas si smart que ca, voila ce qu'il donne:
Code : Tout sélectionner
; A = 2 * B * 4 + 3 + 5
MOV ebx,dword [v_B]
ADD ebx,ebx
SAL ebx,2
MOV edi,ebx
ADD edi,8
MOV dword [v_A],edi
Bon, ca reste pas mal, mais il a pas su grouper les 2 constantes de multiplication. Je vais voir comment améliorer ca.
Par contre, si tu groupes les constantes:
Code : Tout sélectionner
; A = 2 * 4*B + 3 + 5
MOV ebx,dword [v_B]
SAL ebx,3
MOV edi,ebx
ADD edi,8
MOV dword [v_A],edi
La ca donne.