FarewellLe 21/11/2013 à 20:07
Pourquoi ?
(j'ai comme la très, mais alors vraiment très très légère impression que tu te fous de ma gueule mais bon
)Les labels
On a besoin de connaitre leur offset dans le binaire.
On retient un trouple {handle / offset source / offset binaire}. Ca demande, pour calculer un adressage, de parcourir tous les sources aux offsets retenur pour vois si
on est en présence du label adressé. En cas de label local, on vérifie qu'il n'y a pas de label global entre la position actuelle et le label trouvé.
Sinon, c'est pas le bon. Une fois qu'on a passé le Cursor, au label global suivant, on déduit que le label local n'existe pas.
Autre solution : on retient un offset dans le binaire. Terminé. Pour retrouver un label, on recompte les labels depuis le début, en comparant. On retrouve l'offset
dans le binaire ainsi. C'est abhorrifreux question perfs, mais on diminue par deux la taille prise par le label. 