|
Publicité ' | ||||||||||||||||||||||||
|
|
#82 |
|
Membre confirmé
![]() Étudiant Inscription : novembre 2010 Messages : 120 ![]() |
edfed:
petite question : est-ce que fasm fait de soi-disant "optimisation" en modifiant salement le code initial ou bien alors il se contente juste de traduire les mnémo en instructions sans essayer d'être plus malin que nous ? (je ne prétends pas être plus malin qu'un assembleur) |
|
|
00
|
|
|
#83 |
|
Membre chevronné
![]() être humain Inscription : décembre 2007 Messages : 471 ![]() |
fasm compile le code de sorte à ce qu'il soit le plus petit possible.
c'est principalement autours des jumps et calls qu'il y a lieu d'optimiser pour un compilateur. un jump avec deplacement 8 bits prend moins de place et s'execute plus vite que ses homologues 16 ou 32 bits. une première passe va creer les labels (etiquettes et constantes), une liste des references presentes dans le code source. une fois la liste d'etiquettes creée, il faut leur donner une valeur, une adresse. les jumps sont mis en forme 8 bits une première fois, et les labels sont retestés. si des jumps doivent sauter plus loin, il sont reajustés en 16 ou 32 lors des passes suivantes. au final, nous avons la forme de jump optimale quel que soit le cas. voilà en quoi fasm optimise la taille du code. pour les autres optimisations, c'est au programmeur de decider, le compilo à rien à voir dans l'invention d'un algo plus rapide. |
|
|
10
|
|
|
#84 |
|
Membre confirmé
![]() Étudiant Inscription : novembre 2010 Messages : 120 ![]() |
Ok, en fait je demandais ça car il m'est arrivé avec NASM de constater que le code obtenu par désassemblage n'était pas le même de ce que j'avais écrit (et je ne parle pas d'opcode synonymes, le code était vraiment légèrement différent).
|
|
|
00
|
|
|
#85 |
|
Membre confirmé
![]() ![]() Inscription : octobre 2005 Messages : 173 ![]() |
Jwasm nouvelle version
http://www.japheth.de/JWasm.html Remplace (presque) ml et permet un usage commercial. |
|
|
00
|
Copyright © 2000-2013 - www.developpez.com