begin process at 2010 03 19 15:01:09
  Trouver un code source :
 
dans
 
Accueil > Forum > 

Assembleur

 > 

Divers

 > 

Aide et documentation

 > 

[Assemblage] - Calcul d'Offsets


Derniers messages déposésPoser une question dans le forum ou lancer une discussion

[Assemblage] - Calcul d'Offsets

samedi 22 décembre 2007 à 17:54:23 | [Assemblage] - Calcul d'Offsets

Nowid50

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...

Un peu d'aide serait super !

Merci d'avance !
dimanche 23 décembre 2007 à 08:06:58 | Re : [Assemblage] - Calcul d'Offsets

ToutEnMasm

Salut,
Rien de bizarre dans la manière de gérer les adresses par ollydbg

L'adressage

dimanche 23 décembre 2007 à 09:46:02 | Re : [Assemblage] - Calcul d'Offsets

Nowid50

Merci bien pour ton aide. J'ai compris maintenant (mais avouer que cela semble bizarre de comncer par 400'000 ;))

Sinon j'ai essayé de modifier le code binaire. Apparemet c'est relatif à la position du CALL/JMP... J'essaye d'autre et je vous tient au courant
dimanche 23 décembre 2007 à 11:32:04 | Re : [Assemblage] - Calcul d'Offsets

ToutEnMasm

Réponse acceptée !

Salut,
La formule peut s'écrire ainsi:
Adresse saut = adresse de l'instruction+ saut algébrique (négatif ou positif)

adresse de l'instruction = 400 000 + relative position dans le code

dimanche 23 décembre 2007 à 11:36:12 | Re : [Assemblage] - Calcul d'Offsets

Nowid50

Merci beaucoup je file vérifier ca !
dimanche 23 décembre 2007 à 11:36:14 | Re : [Assemblage] - Calcul d'Offsets

Nowid50

Merci beaucoup je file vérifier ca !


Cette discussion est classée dans : code, xx, call, assemblage, offsets


Répondre à ce message

Sujets en rapport avec ce message

Mov mem immediat, immediat [ par Erkson ] Bonjour à tous.J'utilise un Pentium II PC, Windows ME, et un debuggeur qui a un assembleur intégré. Lorsque je veux modifier le programme que je debug Invoke et Call [ par Micro_and_Macro ] Bonjour Voilà je débute en asm(masm32) et j'expérimente, mais là je flanche :-)Pourquoi ces 2 codes ne donnent -il pas la mêm chose?1er code.code call ptr16:32 [ par skorpi ] Bonjour,Dans la doc intel (instruction set referenc vol 2A), on trouve les formes suivantes pour l'instruction CALL :9A cd CALL ptr16:16 Invalid Valid [Assembleur inline C++] Récupérer l'offset d'un label [ par ShivX ] Bonjour a tous, J'ai un léger problème avec l'assembleur inline dans un programme en C++, n'étant pas un expert en asm j'espère que vous pourrez m'éc processeur à pile [ par ramzitligue ] salut, je travaille sur un processeur à pile(Forth),j'ai besoin d'un code source(asm)pour le tester.je prefere que le code contient des instructions c Création d'une lib sous tasm et linkage avec du code tc avec tlink [ par rdany62 ] Bonjour, Je cherche à créer une librairie statique avec tasm et la lier avec un code écrit avec turbo c. tout ce passe bien (assemblage, compilation e petit probleme [ par wessleyclark ] bonjour tous le monde, voila j`ai un petit soucis avec mon code.[^^mad5] ce que je voulais faire , c`est de lire les donnee d`une telecomande transme lecture de date au clavier asm [ par w120 ] salut!! je suis un déééééééébutant en langage assembleur j'ai essayé de le comprendre seul mais au niveau de l'application je trouve tant de diffucul programme assembleur [ par marwen09 ] je veux ecrire un programme assembleur qui recuper la date de system puis affecte dans jour le nombre de jour ,dans anne le nobre d'anne et dans moi s


Nos sponsors


Sondage...

CalendriCode

Mars 2010
LMMJVSD
1234567
891011121314
15161718192021
22232425262728
293031    

Consulter la suite du CalendriCode

Photothèque

 
Développement réalisé par Nicolas SOREL (Nix) avec l'aide de : Cyril DURAND et Emmanuel (EBArtSoft), Merci à Vincent pour ses précieux conseils.
CodeS-SourceS.com© Toute reproduction même partielle est interdite sauf accord écrit du Webmaster
CodeS-SourceS.com© est une marque déposée tous droits réservés

Google Coop CodeS-SourceS Google Coop CodeS-SourceS
Temps d'éxécution de la page : 0,437 sec (3)

Nous contacter | Annoncer sur CodeS-SourceS | Mentions légales