Soutenez-nous
Publicité
+ Répondre à la discussion
Affichage des résultats 1 à 4 sur 4
  1. #1
    Invité de passage
    Profil pro Meryem El bouhali
    Inscrit en
    mars 2010
    Messages
    4
    Détails du profil
    Informations personnelles :
    Nom : Meryem El bouhali

    Informations forums :
    Inscription : mars 2010
    Messages : 4
    Points : 1
    Points
    1

    Par défaut [PIC16F877] Soustraire 32 à W

    Bonjour tout le monde,

    Je suis débutante en assembleur. J'ai essayé d'écrire un programme qui soustrait la constante 32 de l'accumulateur W, mais ca ne marche pas. Est-ce que vous pouvez me montrer ou se trouve mon erreur ?

    S'il est nécessaire de préciser, j'utilise MPLAB 6.30.

    Voici le programme :

    Code asm :
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    list p=16f877 , r=dec
    include <p16f877.inc>
    __CONFIG H'3F31'
     
    bsf STATUS,RP0;
    bsf STATUS,RP1;
    movlw D'32' ;
    movwf 181h;
     
    Subwf 181h,0
    movwf 185h;
    end

  2. #2
    Invité de passage
    Profil pro Meryem El bouhali
    Inscrit en
    mars 2010
    Messages
    4
    Détails du profil
    Informations personnelles :
    Nom : Meryem El bouhali

    Informations forums :
    Inscription : mars 2010
    Messages : 4
    Points : 1
    Points
    1

    Par défaut [PIC16F877] MPLAB : Soustraire 32 à W

    Mais pourquoi, je ne reçois aucune réponse c'est pourtant fondamental .

    Help !! j'ai vraiment besoin de savoir .

  3. #3
    Modérateur
    Avatar de Obsidian
    Homme Profil pro
    Chercheur d'emploi
    Inscrit en
    septembre 2007
    Messages
    5 230
    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 : 5 230
    Points : 13 106
    Points
    13 106

    Par défaut

    Citation Envoyé par Meryl1989 Voir le message
    Mais pourquoi, je ne reçois aucune réponse c'est pourtant fondamental .
    Parce que « mais ça ne marche pas » n'est pas une question valable. Il aurait fallu que tu nous dises exactement ce que tu cherchais à obtenir et quelle valeur tu as obtenu à la place.

    De plus, étant donné la concision de ton code, il n'est pas bien difficile de retrouver l'erreur. Relis bien le fonctionnement de chacune de tes instructions dans les spécifications de ton circuit :

    http://ww1.microchip.com/downloads/e...Doc/30292c.pdf

    Help !! j'ai vraiment besoin de savoir .
    « SUBWF 181h,- » ne retranche pas le contenu de 181h à W, mais le contenu de W à 181h. Sachant cela, tu peux faire ce que tu veux faire en deux instructions au lieu de quatre. Je te laisse volontairement chercher lesquelles.

  4. #4
    Invité de passage
    Profil pro Meryem El bouhali
    Inscrit en
    mars 2010
    Messages
    4
    Détails du profil
    Informations personnelles :
    Nom : Meryem El bouhali

    Informations forums :
    Inscription : mars 2010
    Messages : 4
    Points : 1
    Points
    1

    Par défaut [PIC16F877] MPLAB : Soustraire 32 à W

    Voici le programme rectifié :

    Code asm :
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    list p=16f877 , r=dec
    include <p16f877.inc>
    __CONFIG H'3F31'
     
    bsf STATUS,RP0  ; banc 1 
    bsf STATUS,RP1  ; banc 1 
    movlw D'10'     ; charger dans W la constante 10 en décimal
    Sublw D'32'     ; retranche 32 du contenu de l'accumulateur W
    movwf 181h       ; place le contenu de W dans l'adresse 181h
    end


    Citation Envoyé par Obsidian Voir le message
    « SUBWF 181h,- » ne retranche pas le contenu de 181h à W, mais le contenu de W à 181h. Sachant cela, tu peux faire ce que tu veux faire en deux instructions au lieu de quatre. Je te laisse volontairement chercher lesquelles.
    Le résultat obtenu est la valeur décimale « 22 ». Du coup, c'est plutôt le contenu de 181h qui est retranché de l'accumulateur W et non le contraire.

    Merci pour ton aide

+ Répondre à la discussion
Cette discussion est résolue.

Liens sociaux

Règles de messages

  • Vous ne pouvez pas créer de nouvelles discussions
  • Vous ne pouvez pas envoyer des réponses
  • Vous ne pouvez pas envoyer des pièces jointes
  • Vous ne pouvez pas modifier vos messages
  •