Académique Documents
Professionnel Documents
Culture Documents
Niveau: 2A, 2P et 3B
1
Introduction
• Les instructions d’un programme sont contenues dans la mémoire programme du
microcontrôleur sont une suite de mots binaires décodées puis exécutées par le
microprocesseur.
• C’est la raison pour laquelle ils sont traduits en différents mots (opcodes) faisant partie du
langage assembleur.
2
types d’instructions
• D’après le jeu d’instruction du PIC16F84 (page 56 du Datasheet), on peut classer les
instructions en 4 types:
1) Les instructions orientées octet: Ce sont des instructions qui manipulent les
données sous forme d’octets.
3) Les instructions générales: Ce sont les instructions qui manipulent des données qui
sont codées dans l’instruction directement. (mode d’adressage immédiat)
4) Les instructions de sauts et appels des sous-routines : Ce sont les instructions qui
provoquent une rupture dans la séquence de déroulement du programme.
3
1er groupe d’instructions (1)
4
Explication des colonnes du tableau précédant:
❑ Mnémonique, opérandes = mots réservés compris et interprétés par le programme
d’assemblage.
• f : la désignation du registre mémoire (SFR ou GPR) qui sera utilisé par l’instruction.
• d : la désignation de la destination, spécifie l’emplacement du résultat:
• Si d=0 , le résultat est placé dans le registre de travail W;
• Si d=1, le résultat est placé dans le registre spécifié dans l’instruction.
❑ Description = le rôle de l’instruction
Exemple 1: ADDWF PORTB,0 ; (w)+(PORTB) et mettre le résultat dans (w)
Exemple 2: ADDWF PORTB,1 ; (w)+(PORTB) et mettre le résultat dans (PORTB)
Exemple 3: DECF var,0 ; décrémentation de var : (var)-1 et mettre le résultat dans (w)
Exemple 4: DECF PORTB,0 ; décrémentation de var: (var)-1 et mettre le résultat dans (var)
5
❑ Cycles = le cycle machine ou cycle d’instruction = le temps nécessaire pour exécuter une instruction
Rappel: Cycle instruction = 4 * Cycle du circuit d’horloge
= 4 / Fréquence du circuit d’horloge (pins 15,16 du PIC 16F84)
Exemple:
decfsz var,1 ;décrémenter var, mettre le résultat dans var et tester si ce résultat est null?
si résultat non null → l’instruction dure 1 cycle
si résultat null → l’instruction dure 2 cycles
6
❑ La traduction de l’instruction sur 14bits (le code binaire):
Exemple :
COMF PORTB,1
• les 7 bits de plus faible poids de l’adresse du registre PORTB.
00001110000101 • le 8ème bit de l’adresse est déduit du numéro de la banque (le bit RP0 du registre
STATUS)
7
❑Les bits de STATUS affectés :
9
• BTFSS , BTFSC
10
3ème groupe d’instructions
11
Les modes d’adressage
• Les modes d’adressages sont les différents moyens qui permettent au
microprocesseur d’accéder à une opérande en vue de tester ou de
modifier le contenu d’un registre de la mémoire.
• Exemple:
13
Le mode d’adressage direct:
L’emplacement contenant la valeur utile est donné DIRECTement dans la phrase.
14
Le mode d’adressage indirect:
• Avec ce mode d’adressage, il faut passer par 2 étapes préalables pour connaitre la valeur utile.
• L ’adressage indirect fait appel au deux registres spéciaux FSR (adresse 0X04 dans les 2 banques) et
INDF (adresse0x00) de la mémoire de donnée.
• Fonctionnement:
▪ Le registre FSR (signifie File Select Register) pointe sur l’emplacement du registre qui contient la
donnée utile.
▪ Le registre INDF (signifie INDirectFile) nous donne accès au CONTENU de la case pointée par
FSR.
• Remarque: le registre INDF n’existe pas vraiment, ce n’est qu’un procédé d’accès particulier à FSR.
• Ce mode d’adressage se reconnaît immédiatement par l’utilisation du registre INDF.
15
Exemple: La donnée utile est 0x05 qui se trouve à l’adresse 0x0E de la mémoire.
• Pour récupérer cette donnée avec le mode d’adressage indirect, le PIC va voir dans le registre FSR,
et lit l’adresse contenue, dans ce cas 0X0E. Il va ensuite à l’emplacement visé, et lit le CONTENU via
INDF et le met dans (W).
• Donc, dans (W) on aura le contenu de 0x0E, soit 0x50.
17