Précédent   Forum du club des développeurs et IT Pro > 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
 
Outils de la discussion
Publicité
'
Vieux 08/02/2012, 18h57   #1
nayssa78
Invité de passage
 
Femme nayssa
Enseignant
Inscription : février 2012
Messages : 9
Détails du profil
Informations personnelles :
Nom : Femme nayssa
Localisation : Algérie

Informations professionnelles :
Activité : Enseignant
Secteur : Enseignement

Informations forums :
Inscription : février 2012
Messages : 9
Points : 2
Points : 2
Par défaut État de la mémoire après exécution d'un POP

Salut à tous,

Mon problème est le suivant : que trouve-t-on dans la mémoire a la place d'un mot dépilé, c'est-à-dire après exécution d'un POP ? Le mot est-il remis a zéro ou bien le mot ne subit aucun changement, seul SP sera modifié ?

Merci beaucoup.
nayssa78 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 08/02/2012, 20h18   #2
Eric2a
Membre Expert
 
Avatar de Eric2a
 
Homme Eric Garidacci
Inscription : septembre 2005
Messages : 1 094
Détails du profil
Informations personnelles :
Nom : Homme Eric Garidacci
Âge : 42

Informations forums :
Inscription : septembre 2005
Messages : 1 094
Points : 1 717
Points : 1 717
Salut,

Une fois le contenu de la mémoire d'adresse SS:SP est chargé dans la destination, le registre SP est incrémenté de 2 (ou de 4 pour les valeurs sur 32 bits).

Quand au contenu de la mémoire d'adresse SS:SP, sa valeur est indéfinie car une interruption materielle peut être enclenchée juste après l'opération de dépilage.
Eric2a est déconnecté   Envoyer un message privé Réponse avec citation 10
Vieux 08/02/2012, 23h18   #3
Obsidian
Modérateur
 
Avatar de Obsidian
 
Homme
Chercheur d'emploi
Inscription : septembre 2007
Messages : 4 639
Détails du profil
Informations personnelles :
Sexe : Homme
Âge : 37
Localisation : France, Essonne (Île de France)

Informations professionnelles :
Activité : Chercheur d'emploi
Secteur : High Tech - Éditeur de logiciels

Informations forums :
Inscription : septembre 2007
Messages : 4 639
Points : 11 097
Points : 11 097
Citation:
Envoyé par Eric2a Voir le message
Quand au contenu de la mémoire d'adresse SS:SP, sa valeur est indéfinie car une interruption materielle peut être enclenchée juste après l'opération de dépilage.
Oui mais ce n'est pas obligatoire et c'est de toute façon l'objet de l'instruction suivante.

Donc, la bonne réponse est bien la deuxième option : la zone mémoire initialement pointée par SS:SP, après dépilage, reste en l'état jusqu'à ce que quelque chose d'autre viennent explicitement modifier cette zone.
Obsidian est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 09/02/2012, 10h43   #4
nayssa78
Invité de passage
 
Femme nayssa
Enseignant
Inscription : février 2012
Messages : 9
Détails du profil
Informations personnelles :
Nom : Femme nayssa
Localisation : Algérie

Informations professionnelles :
Activité : Enseignant
Secteur : Enseignement

Informations forums :
Inscription : février 2012
Messages : 9
Points : 2
Points : 2
merci pour vos interventions ,mais lorsque je fais des tests avec l'outil DEBUG ;
j'execute par exemple la séquence suivante
push ax
push bx
pop ax
après le pop je trouve dans l'ex sommet de pile une valeur quelconque cad différente de la valeur depilée ; je ne trouve pas d'explication
j'ai besoin d'eclairage a ce sujet
nayssa78 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 09/02/2012, 14h17   #5
Obsidian
Modérateur
 
Avatar de Obsidian
 
Homme
Chercheur d'emploi
Inscription : septembre 2007
Messages : 4 639
Détails du profil
Informations personnelles :
Sexe : Homme
Âge : 37
Localisation : France, Essonne (Île de France)

Informations professionnelles :
Activité : Chercheur d'emploi
Secteur : High Tech - Éditeur de logiciels

Informations forums :
Inscription : septembre 2007
Messages : 4 639
Points : 11 097
Points : 11 097
Citation:
Envoyé par nayssa78 Voir le message
après le pop je trouve dans l'ex sommet de pile une valeur quelconque cad différente de la valeur depilée ; je ne trouve pas d'explication j'ai besoin d'eclairage a ce sujet
Assure-toi dans un premier temps que « l'ex-sommet » se trouve bien à l'endroit que tu penses.

Ensuite, comme dit plus haut, la pile est utilisée par le micro-processeur lui-même pour ses travaux de gestion. Donc, même en fonctionnant en pas à pas avec le débogueur, si ton micro-processeur n'est pas explicitement doté de registres spéciaux de déboguage ou si ton débogueur ne les utilise pas (probable en mode 16 bits), alors ton outil va utiliser une interruption logicielle pour préempter ton programme. Celle-ci va obligatoirement impliquer de la part du micro-processeur une sauvegarde automatique du contexte dans la pile, et l'ancien contenu sera donc écrasé avant que tu aies eu le temps de le lire.

Si tu veux quand même vérifier que c'est vrai, il faut désactiver les interruptions avec CLI (on suppose que tu tournes dans un mode réel ou émulé comme tel) et faire en sorte que ce soit ton programme lui-même qui aille récupérer la valeur au bon endroit et qui la compare avec ce qu'il vient de dépiler.
Obsidian est déconnecté   Envoyer un message privé Réponse avec citation 10
Vieux 09/02/2012, 16h01   #6
nayssa78
Invité de passage
 
Femme nayssa
Enseignant
Inscription : février 2012
Messages : 9
Détails du profil
Informations personnelles :
Nom : Femme nayssa
Localisation : Algérie

Informations professionnelles :
Activité : Enseignant
Secteur : Enseignement

Informations forums :
Inscription : février 2012
Messages : 9
Points : 2
Points : 2
Salut
En utilisant l'instruction cli ,je retrouve dans l'ancien sommet de pile la bonne valeur ; pour récapituler aprés exécution d'un pop la valeur dépilée est toujours en mémoire elle sera ecrasée par un éventuel PUSH , que signifie preempter?
merci beaucoup
A++
nayssa78 est déconnecté   Envoyer un message privé Réponse avec citation 00
Réponse Cette discussion est résolue.
Outils de la discussion

Navigation rapide


Fuseau horaire GMT +2. Il est actuellement 09h53.


 
 
 
 
Partenaires

Hébergement Web