Précédent   Forum du club des développeurs et IT Pro > Environnements de développement > Autres EDI > MPLAB
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 24/03/2010, 16h18   #1
Meryl1989
Invité de passage
 
Meryem El bouhali
Inscription : 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
Meryl1989 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 27/03/2010, 13h46   #2
Meryl1989
Invité de passage
 
Meryem El bouhali
Inscription : 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 .
Meryl1989 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 27/03/2010, 15h07   #3
Obsidian
Modérateur
 
Avatar de Obsidian
 
Homme
Chercheur d'emploi
Inscription : septembre 2007
Messages : 4 612
Détails du profil
Informations personnelles :
Sexe : Homme
Âge : 36
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 612
Points : 11 082
Points : 11 082
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

Citation:
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.
Obsidian est actuellement connecté   Envoyer un message privé Réponse avec citation 00
Vieux 28/03/2010, 15h50   #4
Meryl1989
Invité de passage
 
Meryem El bouhali
Inscription : 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
Meryl1989 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 21h01.


 
 
 
 
Partenaires

Hébergement Web