Vous êtes sur la page 1sur 68

ARCHITECTURE DES MICROCONTRÔLEURS

Modes d’adressage et
Jeu d’instructions

1
INTRODUCTION
 Les instructions contenues dans la mémoire
programme sont une suite de mots binaires décodés puis
exécutés par le microprocesseur.

 Ces codes sont difficilement compréhensibles par le


programmateur.

 C’est la raison pour laquelle ils sont traduits en


différents mots faisant partis du langage assembleur.
2
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 ou d’une mémoire.

Il existe 5 modes d’adressage:

1. Mode d’adressage immédiat (littéral),


2. Mode d’adressage direct,
3. Mode d’adressage indirect,
4. Mode d’adressage de type bit,
5. Mode d’adressage relatif (instructions de saut). 3
ADRESSAGE IMMEDIAT OU LITTERAL
 Avec l’ ADRESSAGE IMMEDIAT ou
ADRESSAGE LITTERAL, vous pouvez dire :

« je mets 100DT en poche »

 La valeur fait IMMEDIATement partie de la


phrase.

 J’ai donné LITTERALlement la valeur


concernée.

4
Pas besoin d’un autre renseignement.
ADRESSAGE IMMEDIAT OU
LITTERAL (2)

 La donné manipulée par l’instruction est


codé avec l’instruction elle-même.

 la donnée est appelée un «literal»


(appellation adoptée par Microchip).

 exemple: MOVLW k

permet de placer le literal k (une valeur


quelconque sur 8 bits), dans le registre de
travail W 5
ADRESSAGE DIRECT
 Avec l’ ADRESSAGE DIRECT, vous pouvez dire
:

« je vais mettre le contenu du coffre numéro 3


dans ma poche »
exemple: MOVWF f

 l’emplacement contenant la valeur utile est


donné DIRECTement dans la phrase.

 Mais il faut d’abord aller ouvrir le coffre pour savoir 6


ce que l’on va effectivement mettre en poche.
ADRESSAGE DE TYPE BIT
 Ce mode permet de manipuler un bit
individuel dans n’importe quel registre.

 Ce mode d’adressage est généralement couplé


avec le mode d’adressage direct.

 exemple: BCF STATUS, RP0

 permet de positionner à 0 le bit RP0 du


registre STATUS (Sélectionner la banque 0).
7
ADRESSAGE INDIRECT
 Dans l’adressage INDIRECT on peut dire:

« Le préposé du guichet numéro 3 va me donner


le numéro du coffre qui contient la somme que
je vais mettre en poche. »

 On obtient le numéro de coffre INDIRECTement


par le préposé au guichet.

 Cet adressage fait appel a deux registres: FSR et INDF


8
LES REGISTRES FSR ET INDF
 INDF: INDirect File,

 Il se trouve à l’adresse 0x00.

 Ce registre n’existe pas vraiment, ce n’est qu’un


procédé d’accès particulier à FSR.

 FSR: File Select Register

 Il se trouve à l’adresse 0x04 dans les deux banques.

 Dans l’exemple précédent le préposé du guichet est le 9


registre FSR
LES REGISTRES FSR ET INDF (EXEMPLE)
1. Ecrire l’adresse pointée dans le registre FSR.
2. On accède a l’adresse pointée par le registre INDF.
 INDF est le registre FSR utilisé pour accéder a la
case mémoire.
 LE CONTENU DE INDF EST TRADUIT PAR LE PIC
COMME ETANT LE CONTENU DE
L’EMPLACEMENT MEMOIRE POINTE PAR FSR

 Exemple :
- Le registre à l'adresse h'05' contient la valeur : h'10'.
- Le registre à l'adresse h'06' contient la valeur : h'0A'.
- On écrit la valeur h'05' dans FSR.
Si on lit le registre INDF à l'adresse h'00' on obtient la
valeur : h'10'.
10
On incrémente FSR de 1 et on relit INDF en h'00' on
obtient la valeur : h'0A'
ADRESSAGE RELATIF
 L’opérande détermine une position relatif d’adresse
mémoire.
 Exemple:

GOTO adrsse
CALL adresse

11
JEU D’INSTRUCTIONS

12
INTRODUCTION

 Un microcontrôleur PIC MidRange:


 instructions codées sur un mot de14 bits.

 Un microcontrôleur est de type RISC:


 jeu d’instruction réduit (35 instructions).

 L’exécution d’une instruction occupe un cycle


machine (4 périodes d’horloge).
 CALL,GOTO, RETFIE, RETLW et RETURN:
demandent 2 cycles.
 BTFSS, DECFSZ, INCFSZ : demandent un ou deux

cycles 13
FORMATS DES INSTRUCTIONS

Une instruction codée en mémoire sur un mot de 14 bits est


subdivisée:
• Un code opération: permet de spécifier le type de
l’opération;

• Un ou plusieurs opérandes: permettent de spécifier le


(ou les) arguments de l’opération.

14
Groupes d’instructions:
1. Opérations orientés octets:
• f représente la désignation d’un registre SFR et permet de spécifier
le registre qui sera utilisé par l’instruction.
• d représente la désignation de la destination et permet de spécifier
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 SFR spécifié dans
l’instruction.

15
2. Opérations orientés bit:
• b désigne un champ de type bit et permet de sélectionner le
nombre de bits affectés par l’opération.
• f représente le numéro du registre dans lequel le bit est localisé.

16
3. Opérations littérale et de contrôle :
• K représente une constante sur 8 ou 11 bits ou une valeur littérale.

17
Jeu d’instructions:
1. Premier groupe:

18
Jeu d’instructions:
2. Deuxième groupe:

19
Jeu d’instructions:
3. Troisième groupe:

20
Description des instructions:

21
22
ADDWF (2)
 Exemple 1
MOVWF mavariable,W
ADDWF mavariable,W
 Mettre dans W le contenu de mavariable et
additionner mavariable avec le contenu de W et
metter le resultat dans W.
 Exemple 2
MOVW F VentesDuMois,W
ADDWF VentesDuMois,F
Mettre dans W le contenu de VentesDuMois et
additionner VentesDuMois avec le contenu de W et
ranger le resultat dans VentesDuMois.
23
24
25
26
27
28
 Vérifie l’état logique du bit désigné de l’octet situé à
l’adresse indiquée.
 Est-il à zéro ?
 S’il est à zéro, ignore l’instruction suivante.

 Selon la réponse, l’instruction prend 1 ou 2 cycles


d’horloge.
29
30
31
32
CALL (2)
 Le μC sauvegarde l’adresse de retour dans la pile, puis
charge dans le PC (Program Counter) l’adresse à
laquelle il est invité à se rendre.
 Tout sous-programme appelé par l’instruction CALL
doit obligatoirement se terminer soit par l’instruction
RETURN, soit par l’instruction RETLW qui renvoient
au programme principal.

33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
RESUMÉ

62
63
64
65
66
67
68