cricri_b34
Messages postés223Date d'inscriptionmercredi 21 juillet 2004StatutMembreDernière intervention15 février 2006 13 févr. 2006 à 14:13
ben en fait mon code est en delphi.... je c pas si c aussi bon, mais un avantage de delphi, c'est qui'il permet d'insérer de l'assembleur directement dans le code. J'aimerais donc en profiter
BruNews
Messages postés21040Date d'inscriptionjeudi 23 janvier 2003StatutModérateurDernière intervention21 août 2019 13 févr. 2006 à 14:47
Delphi, he he fallait préciser dans la question, j'aurais gagné du temps à passer mon chemin.
Dans tous les cas faudrait savoir ce qui va se passer dans tes boucles sinon impossible de savoir ce qui sera le mieux.
Commence deja par optimiser l'algo, c'est toujours la 1ere chose à faire:
for(v = 0; v < 10; v++)
n'est pas bon puisqu'il devrait tester 'v < 10' dès le début alors qu'on sait qu'on commence sur 0.
On remplacera par:
v = 0;
do {
// autres boucles (sur même principe) et codes ici
} while(++v < 10);
On saute déjà le 1er test inutile.
Ensuite encore mieux mais seulement si possible, à toi de le savoir. Commencer à la valeur haute et décrémenter le compteur vers 0, le code ASM généré est toujours plus court.
Exemple:
mov edi, 10
....
vLOOP:
;;; ton code ici
dec edi
jnz vLOOP
On gagne ainsi l'instruction "cmp edi, 10".