Folco (./29) :
Que mon code soit assemblé au micron près, ou qu'il ne le soit pas du tout. Mais on ne devine pas mon code, on ne le triture pas, on ne le modofie pas : on assemble.
A ce moment là il faut coder en hexa, un assembleur est tout à fait supposé changer ton code, parce qu'il est symbolique.
Typiquement rien que la gestion des liens est une énorme aide, et nécessite en fonction des processeurs de générer du code différent selon que le lien est à portée ou loin (saut relatif si encodable dans les 12 bits de l'opérande signée par exemple, ou référence absolue sinon).
L'assembleur va gérer ça, car tu ne veux pas avoir tout à coup à modifier d'anciennes parties de ton programme car tu as inséré du code au milieu qui rend certains sauts trop larges pour être possibles. Inversément si des références relatives redeviennes possibles, on peut être content qu'elles soient utilisées.
Seul le code binaire te garantit que ce que tu vas faire tourner correspond à ce que tu as écrit, au prix d'une maintenance rendant quasi impossible le codage d'un jeu d'un niveau supérieur à Super Mario Land ^^