Précédent   Forum des professionnels en informatique > Autres langages > Assembleur
Assembleur Forum d'entraide Assembleur. Avant de poster -> F.A.Q Assembleur Tutoriels Assembleur
Partagez cette discussion sur d'autres réseaux sociaux : Viadeo Twitter Google Facebook Digg Delicious MySpace Yahoo
Réponse Proposer ce sujet en actualité
 
Outils de la discussion
Publicité
'
Vieux 19/12/2011, 15h56   #1
Nouveau Membre du Club
 
Inscription : janvier 2010
Messages : 92
Détails du profil
Informations forums :
Inscription : janvier 2010
Messages : 92
Points : 38
Points : 38
Par défaut les jump en asm

Bonjour,

Je demande humblement vos lumières pour une explication sur les jump.
Je sais à quoi cela sert. Cela dit je ne comprends pas comment ils sont codés.
Lorsque je regarde gdb, à une certaine adresse, un jump comme jae prend 2 octets. A coté (en légende), il est affiché l'adresse vers le jump (censée faire 4 octets).
Un jump en général, c'est de la forme xy c3, (xy le premier octet).
Je voudrais savoir si l'adresse où jumper est spécifiée par le xy (je ne crois pas);
ou alors elle est sur la pile et c'est le c3 qui la pop?

J'espère que c'est clair ;p
Merci pour votre attention et votre aide.
maxhazard est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 19/12/2011, 16h40   #2
Nouveau Membre du Club
 
Inscription : janvier 2010
Messages : 92
Détails du profil
Informations forums :
Inscription : janvier 2010
Messages : 92
Points : 38
Points : 38
Je sais que c'est la base de la base mais j'ai vraiment besoin de comprendre.
J'ai regardé un bout de code mais je n'ai pas vu un push de l'adresse où jumper avant l'intruction jae.

Je vous montre ce que je vois avec objdump:
Code :
1
2
 809d051:	39 f7                	cmp    %esi,%edi
 809d053:	73 c3                	jae    809d018 <____strtold_l_internal+0x798>
Il n'y a pas l'adresse après le l'instruction 73 c3 qui est jae.
Moi pas comprendre

Un autre code que j'ai tapé:
Code :
1
2
3
08048394 <main>:
 8048394:	39 fe                	cmp    %edi,%esi
 8048396:	0f 86 f8 ff ff ff    	jbe    8048394 <main>
Ici ce serait un jmp relatif de -8, ok mais pour le premier?
maxhazard est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 19/12/2011, 18h04   #3
Nouveau Membre du Club
 
Inscription : janvier 2010
Messages : 92
Détails du profil
Informations forums :
Inscription : janvier 2010
Messages : 92
Points : 38
Points : 38
50 vues et pas de réponse. Pourtant j'ai pas bu en écrivant ce post.
maxhazard est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 19/12/2011, 18h27   #4
Membre expérimenté
 
Avatar de edfed
 
être humain
Inscription : décembre 2007
Messages : 465
Détails du profil
Informations professionnelles :
Activité : être humain

Informations forums :
Inscription : décembre 2007
Messages : 465
Points : 582
Points : 582
le premier est un jump conditionel 8 bits.
donc, c3 est une valeur negative 8 bits.

le second est un jump conditionel 32 bits.
donc, un offset signé 32 bits

rien de bien compliqué.

il faut revoir les bases de la numeration et les addressages.
__________________
http://www.pending.me.uk/nmc/bla_1356091200.png
Vivement 21/12/2012
edfed est déconnecté   Envoyer un message privé Réponse avec citation 10
Vieux 19/12/2011, 18h44   #5
Nouveau Membre du Club
 
Inscription : janvier 2010
Messages : 92
Détails du profil
Informations forums :
Inscription : janvier 2010
Messages : 92
Points : 38
Points : 38
Le c3 m'avait fait penser à autre chose.
Merci .
maxhazard est déconnecté   Envoyer un message privé Réponse avec citation 00
Réponse Proposer ce sujet en actualité
Outils de la discussion



Fuseau horaire GMT +2. Il est actuellement 20h15.


 
 
 
 
Partenaires

Hébergement Web