Nel mio portatile x86_64, per eseguire salti di lunghezza arbitraria rispetto alla posizione corrente, non conoscendo a priori: ne l'indirizzo dell'istruzione di salto, ne la sua distanza in byte da una label; utilizzo una spiazzamento rispetto all'indirizzo dell'ip register, in questo modo,
codice:
jmpq   *spiaz(%rip)
Cosi avremmo ip <- ip+spiaz.
Quest'oggi ho provato a eseguire quest'istruzione, sotto un'architettura i686,
codice:
jmp   *spiaz(%eip)
ma, l'assemblatore m'ha informato dell'illegalità dell'istruzione( ora non ricordo l'errore ). In sostanza non è possibile leggere il puntatore di programma. Sapreste suggerirmi qualche raggiro per sapere l'indirizzo contenuto nell'ip, o come saltare rispettando le condizioni su dette, con un'architettura i686?