18Fermer20
SasumeLe 02/10/2009 à 23:10
Folco (./13) :
Mais comment implémenter ça, le représenter en mémoire ? J'avais idée d'écrire les instructions dans un buffer de 10 octets (ou directement dans le handle du binaire), au fur et à mesure de ce que je lis
Ça me semble bien dans l’idée, je pense que tu peux même écrire directement dans le fichier de sortie (qui ne sera peut-être pas l’exécutable si tu fais une édition de liens ensuite, ou si tu veux gérer le format kernel).

Pour ce qui est des labels, tu dois simplement construire une table de symbles au fur et à mesure de l’assemblage, dans laquelle tu notes à quoi correspond chaque déclaration de label que tu croises (où il est physiquement et où il est utilisé).
Quand tu dois calculer un saut, tu regardes si le label auquel le saut fait référence est déjà dans ta table, si oui tu calcules la distance du saut, sinon tu notes le fait qu’il est utilisé à cet endroit comme ça quand tu trouveras sa définition plus bas tu rempliras la valeur du déplacement. Ça te permet d’assembler en une seule passe.