Page 1 sur 1

Registre IP

Publié : mer. 01/avr./2009 22:23
par Anonyme
Comment connaître la valeur de ce registres ?

j'ai compris qu'on ne pouvais pas le manipulé , logique.
mais comment "pushé" sa valeur sur une pile manipulable ?

Publié : jeu. 02/avr./2009 14:58
par Ollivier

Code : Tout sélectionner

JeSuisLaValeurActuelleDuRegistreEIP:
Debug "EIP = 0x0" + Hex(?JeSuisLaValeurActuelleDuRegistreEIP) + "h"

Publié : jeu. 02/avr./2009 15:05
par Ollivier
Et si tu ne veux pas de la petite Lulu, je te présente la grosse Léa:

Code : Tout sélectionner

Procedure GetEIP()
! Lea eax,[l_jesuislavaleuractuelleduregistreeip]
ProcedureReturn
EndProcedure

JeSuisLaValeurActuelleDuRegistreEIP:
Debug "EIP = 0x0" + Hex(?JeSuisLaValeurActuelleDuRegistreEIP) + "h"
Debug "EIP = 0x0" + Hex(GetEIP() ) + "h"

Publié : jeu. 02/avr./2009 15:07
par Ollivier
Sinon, il y a Berthes, mais là, faut que tu te décides!

Code : Tout sélectionner

Macro InitGetEIP
Declare.I GetEIP()
Define EIPDiffA.I
Define EIPDiffB.I
Global EIPDiff.I 
InitTest:
EIPDiffA = GetEIP()
EIPDiffB = ?InitTest
EIPDiff = EIPDiffA - EIPDiffB
EndMacro

InitGetEIP

Procedure.I GetEIP()
   ! pop eax
   ! push eax
   ! sub eax, [v_EIPDiff]
ProcedureReturn
EndProcedure




; Prog



AddressAuPifPourTester:
A = GetEIP()
Debug A
Debug ?AddressAuPifPourTester

Publié : jeu. 02/avr./2009 18:58
par tonton
Je n' jamais utilisé ce registre, que je trouve totalement inutile
y a d autre moyen pour savoir la position du programme

tu peux "pusher" un label et lire son contenu
l' instruction "lea" aussi

bwai bon!! je ne sais pas ce que tu veux faire avec EIP!!

Publié : sam. 04/avr./2009 1:56
par Ollivier
Ho le râleur d'élite! "Et gnagna jamais et gnagna totalement inutile!"

Ben oui que c'est inutile! Parce qu'on exécute son programme et qu'on s'en branle du reste! Mais sa question à Cpl.Bator elle est loin d'être con. S'il ne connait pas l'Asm ça n'est pas plus mal qu'il se pose des questions sur le registre qui joue un rôle crucial dans l'exécution de la moindre opération.

C'est un joli doute conceptuel de débutant en Asm! Ne l'aggresse pas: il ne fait que découvrir son "core"! ça n'est pas sale :D

Maintenant, s'il a d'autres questions, je ferais comme dans "Question pour un champion", je n'appuierai pas sur le buzzer et je te laisserai la main! Tu auras le plaisir de lui présenter une ou plusieurs des copines à Lea!! (AAA!!!)

Publié : sam. 04/avr./2009 9:32
par djes
On peut le manipuler, mais c'est "pour les experts" ;)

Publié : sam. 04/avr./2009 10:02
par Fig
Bein, ça peut être utile indirectement ...

Tu call un sous programme: ca empile eid et ensuite tu push une adresse et tu ret ça t'envoie à cette adresse.... Puis tu n'oublie pas de dépiler l'adresse initiale d'eid pour éviter les embrouilles...

bon ok, ça ne sert à rien :mrgreen:

ha, si, peut être pour perdre un amateur qui essaye de reverser ton code :roll: (pis encore, meme pas sûr)

Publié : sam. 04/avr./2009 10:34
par Anonyme
Merci messieurs.

ton code est parfait Olivier! :wink: