IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

x86 16-bits Assembleur Discussion :

[TASM/8086][Débutant] A quoi servent les instructions mov bp,sp et push bp ?


Sujet :

x86 16-bits Assembleur

  1. #1
    Membre régulier
    Profil pro
    Inscrit en
    Mars 2007
    Messages
    541
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2007
    Messages : 541
    Points : 124
    Points
    124
    Par défaut [TASM/8086][Débutant] A quoi servent les instructions mov bp,sp et push bp ?
    Bonjour,

    je voulais savoir à quoi servait l'instruction:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
     
    mov bp,sp
    push bp
    merci.

  2. #2
    Membre confirmé Avatar de dapounet
    Profil pro
    Étudiant
    Inscrit en
    Juillet 2007
    Messages
    469
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Juillet 2007
    Messages : 469
    Points : 567
    Points
    567
    Par défaut
    La première sert à copier SP dans BP pour garder un pointeur constant sur la pile. SP contient l'adresse du dernier élément de la pile, donc il change à chaque fois que tu utilises PUSH/POP. Comme les données se trouvent quand même toujours au même endroit, c'est plus logique d'utiliser toujours les mêmes expressions (bp+4, bp+6, ...) pour y accéder.

    Par exemple si tu as ce code-là :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    mov ax, [sp+2]
    add ax, 2
    mov bx, [sp+4]
    sub bx, 2
    Et que pour une raison ou pour une autre tu dois ajouter un PUSH entre la première et la troisième instruction, SP+4 ne pointera plus au même endroit.
    Et BP est sauvegardé sur la pile parce que la fonction appelante s'attendra à ce qu'il ne change pas (comme pour SI et DI).
    :wq

  3. #3
    Membre régulier
    Profil pro
    Inscrit en
    Mars 2007
    Messages
    541
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2007
    Messages : 541
    Points : 124
    Points
    124
    Par défaut
    pouvez vous me donner une explication pour mon problème de calcul à l'aide de la pile svp:

    http://www.developpez.net/forums/sho...91#post3021291

  4. #4
    Membre confirmé Avatar de dapounet
    Profil pro
    Étudiant
    Inscrit en
    Juillet 2007
    Messages
    469
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Juillet 2007
    Messages : 469
    Points : 567
    Points
    567
    Par défaut
    J'ai vu tes messages sur ce problème mais je n'ai pas répondu parce que je n'ai toujours pas compris exactement ce que tu devais faire, ton code n'est pas commenté et je n'ai pas TASM donc je ne peux pas tester.

    Tu devrais nous donner des indications sur où tu coinces :
    • Est-ce que tu as bien compris ton problème ? Est-ce que tu sais le résoudre dans un langage de haut niveau ?
    • Est-ce que tu connais les bases nécessaires pour ton exercice : adresser un tableau, créer et appeler une fonction, etc. ?


    Les gens postent ici sur leur temps libre, ils n'ont pas envie de chercher pendant une demi-heure ce qui ne va pas dans ton programme alors que toi-même tu ne donnes pas de preuve de bonne volonté.

    Edit : je me suis emporté, il est quand même commenté ton code.
    :wq

  5. #5
    Membre régulier
    Profil pro
    Inscrit en
    Mars 2007
    Messages
    541
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2007
    Messages : 541
    Points : 124
    Points
    124
    Par défaut
    je connais les bases de l'assembleur et j'ai compris l'exo mais le programme devrait fonctionner mais ce n'est pas le cas.

    j'ai l'impression que c'est la partie du travail sur la pile qu'il ne sait pas résoudre!!

  6. #6
    Expert confirmé

    Inscrit en
    Août 2006
    Messages
    3 942
    Détails du profil
    Informations forums :
    Inscription : Août 2006
    Messages : 3 942
    Points : 5 654
    Points
    5 654
    Par défaut
    Fio,
    Citation Envoyé par jojo_ol76 Voir le message
    je connais les bases de l'assembleur et j'ai compris l'exo mais le programme devrait fonctionner mais ce n'est pas le cas.

    j'ai l'impression que c'est la partie du travail sur la pile qu'il ne sait pas résoudre!!
    Là, c'est toi qui ne sais pas le résoudre, le programme fait ce que tu lui apprend à faire.

    Je ne vois pas en quoi travailler dans la pile te pose problème, ce n'est qu'une zone mémoire comme une autre tant qu'on fait attention aux débordements, etc. (comme pour toute zone mémoire).

    Et comme dapounet, je n'ai toujours pas saisi ce que tu veux réellement faire.
    Si les cons volaient, il ferait nuit à midi.

  7. #7
    Membre régulier
    Profil pro
    Inscrit en
    Mars 2007
    Messages
    541
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2007
    Messages : 541
    Points : 124
    Points
    124
    Par défaut
    -declaration des tableaux

    -mise en pile des 8 paramètres (sauvegarde dans la pile)

    -appel de la procédure effectuant les opération des y grâce à la pile en utilisant les offset et le décalage pour passer à la n ième valeur du tabx

    -restitution à la fin de la procédure des valeurs calculé de y dans le débuggeur

Discussions similaires

  1. [Débutant] À quoi servent les interruptions ?
    Par kripteks dans le forum Assembleur
    Réponses: 1
    Dernier message: 12/04/2014, 13h33
  2. Réponses: 3
    Dernier message: 27/03/2008, 12h19
  3. Réponses: 3
    Dernier message: 24/03/2008, 21h21
  4. [CR 10] A quoi servent les Templates Fields ?
    Par caviar dans le forum SAP Crystal Reports
    Réponses: 1
    Dernier message: 10/11/2004, 10h52
  5. [C#] A quoi servent les interfaces???
    Par sof_nns dans le forum Windows Forms
    Réponses: 8
    Dernier message: 28/10/2004, 20h51

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo