Nowid50
Messages postés45Date d'inscriptiondimanche 25 septembre 2005StatutMembreDernière intervention29 octobre 2009
-
22 déc. 2007 à 17:54
Nowid50
Messages postés45Date d'inscriptiondimanche 25 septembre 2005StatutMembreDernière intervention29 octobre 2009
-
23 déc. 2007 à 11:36
Bonjour à tous !
J'aimerais une "petite" information... (pas moyen de trouver sur Google...)
Voila la situation :
Je suis actuellement en train de programmer un mini assembleur qui a partir de ressources dans un fichier (Code Hexadécimal + nom à écrire), écrive du code assembleur. J'ai cependant une contraite de taille...
J'aimerais avoir le support de "ELSE_IF" (C'est à dire d'utiliser un JMP/CALL quand ma condition n'est pas vrai)
Voila le topo :
J'ai mon code : JMP/CALL [Machin]...
on ca donne
E9/E8 XX XX XX XX
Le problème c'est : Comment calculer ces X ?
J'ai regardé à l'aide de OllyDGB dans un programme existant :
E8 90F9FFFF CALL -----.0047AF60
(Attention sous OllyDGB, les offsets sont bizaremment géré, ainsi pour obtenir le vrai offset de mon code, vous devez retirer 400'000 en Héxadécimal à l'adresse plus haut)
Voila je n'arrive pas à comprendre la logique... J'ai bien essayé de modifier les valeurs binaires ou du CALL mais rien a faire, je n'arrive pas à trouver la formule...