Je n'ai as bien compris ton problème. Ton explication n'est pas claire, et c'est peut-être dû à une confusion que tu fais.
movl 42(%esi),%eax
movl data(%esi),%eax
Dans cet exemple, c'est exactement la même instruction dans les deux cas. "data" est une constante que tu as défini précédemment dans ton code.
Il n'y a pas d'adressage relatif pour les données. Il y en a pour les sauts (jmp et call), probablement pour gagner de la place. Mais pas pour les données.
Adressage relatif = par rapport au pointeur d'instruction
Tu ne peux pas dire que tu veux accéder à une donnée située 42 octets plus loin que le pointeur d'instruction.
# Confusion ?
Posté par Kerro . En réponse au message adressage relatif en assembleur amd64, je suis perdu. Évalué à 5. Dernière modification le 01 avril 2012 à 12:51.
Je n'ai as bien compris ton problème. Ton explication n'est pas claire, et c'est peut-être dû à une confusion que tu fais.
Dans cet exemple, c'est exactement la même instruction dans les deux cas. "data" est une constante que tu as défini précédemment dans ton code.
Il n'y a pas d'adressage relatif pour les données. Il y en a pour les sauts (jmp et call), probablement pour gagner de la place. Mais pas pour les données.
Adressage relatif = par rapport au pointeur d'instruction
Tu ne peux pas dire que tu veux accéder à une donnée située 42 octets plus loin que le pointeur d'instruction.