Explication asm
Résolu/Fermé
A voir également:
- Explication asm
- Foyer netflix explication - Accueil - Guide streaming
- Another earth explication fin - Forum Cinéma / Télé
- The farm explication fin ✓ - Forum Cinéma / Télé
- Paris multiple 2/6 explication - Forum Excel
- The descent 2 explication fin - Forum Cinéma / Télé
6 réponses
fiddy
Messages postés
11069
Date d'inscription
samedi 5 mai 2007
Statut
Contributeur
Dernière intervention
23 avril 2022
1 841
28 févr. 2009 à 16:05
28 févr. 2009 à 16:05
EBP et EIP sont des registres spéciaux, tout comme ESP.
Lorsque tu programmes, tu as une pile dont sa base se trouve à l'adresse EBP et le haut à l'adresse ESP.
Si tu modifies ESP pour y mettre n'importe quoi, tu ne pourras plus utiliser ta pile, très gênant.
EIP ne peut pas être modifié directement. Il contient l'adresse de la prochaine instruction à exécuter (il pointe vers la prochaine instruction à exécuter, c'est pareil).
Donc si tu voulais t'en servir comme registre, ton programme aurait de fortes chances de planter car la prochaine adresse à exécuter serait bidon.
Mais tu peux modifier autant que tu le souhaites les registres, EAX, EBX, ECX, EDX.
Lorsque tu programmes, tu as une pile dont sa base se trouve à l'adresse EBP et le haut à l'adresse ESP.
Si tu modifies ESP pour y mettre n'importe quoi, tu ne pourras plus utiliser ta pile, très gênant.
EIP ne peut pas être modifié directement. Il contient l'adresse de la prochaine instruction à exécuter (il pointe vers la prochaine instruction à exécuter, c'est pareil).
Donc si tu voulais t'en servir comme registre, ton programme aurait de fortes chances de planter car la prochaine adresse à exécuter serait bidon.
Mais tu peux modifier autant que tu le souhaites les registres, EAX, EBX, ECX, EDX.
fiddy
Messages postés
11069
Date d'inscription
samedi 5 mai 2007
Statut
Contributeur
Dernière intervention
23 avril 2022
1 841
28 févr. 2009 à 13:57
28 févr. 2009 à 13:57
Sur une machine 32 bits :
AX représente les 16 bits de poids faibles d'EAX.
AX est à son tour divisé en deux registres de 8 bits, AH (poids fords) et AL (poids faibles).
AX représente les 16 bits de poids faibles d'EAX.
AX est à son tour divisé en deux registres de 8 bits, AH (poids fords) et AL (poids faibles).
DONC si g bien compri : EAX != AX(bizar car dans dans un prog sa donne le meme resulta si je mais eax a la place de ax).
mais pk ya pas eip ebp ect
mais pk ya pas eip ebp ect
fiddy
Messages postés
11069
Date d'inscription
samedi 5 mai 2007
Statut
Contributeur
Dernière intervention
23 avril 2022
1 841
28 févr. 2009 à 15:18
28 févr. 2009 à 15:18
Oui, c'est normal que dans certains cas ça donne le même résultat.
AX représente les bits de poids faibles d'EAX. Donc si par exemple tu fais :
eax vaudra 5 et ax vaudra 5 également.
Je comprends pas ta dernière question ?
EIP ça pointe vers la prochaine instruction à exécuter. Et l'EBP pointe vers la base de la pile courante.
Cdlt
AX représente les bits de poids faibles d'EAX. Donc si par exemple tu fais :
mov eax,5
eax vaudra 5 et ax vaudra 5 également.
Je comprends pas ta dernière question ?
EIP ça pointe vers la prochaine instruction à exécuter. Et l'EBP pointe vers la base de la pile courante.
Cdlt
Vous n’avez pas trouvé la réponse que vous recherchez ?
Posez votre question