Architecture des microcontrôleurs Chapitre 3: Modes d’adressage et Jeu d’instructions ABDALLAH Mohamed mohamed.abdallah@isetso.rnu.tn JEDIDI Hassen Hassen.jedidi@esprit.ens.tn © ESPRIT 2009 H.JEDIDI & M.ABDALLAH
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. © ESPRIT 2009 H.JEDIDI & M.ABDALLAH
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 ou d’une mémoire. Il existe 5 modes d’adressage: Mode d’adressage immédiat (littéral), Mode d’adressage direct, Mode d’adressage indirect, Mode d’adressage de type bit, Mode d’adressage relatif (instructions de saut). © ESPRIT 2009 H.JEDIDI & M.ABDALLAH
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. Pas besoin d’un autre renseignement. © ESPRIT 2009 H.JEDIDI & M.ABDALLAH
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 © ESPRIT 2009 H.JEDIDI & M.ABDALLAH
« je vais mettre le contenu du coffre numéro 3 dans ma poche » ADRESSAGE DIRECT Avec l’ ADRESSAGE IMMEDIAT ou ADRESSAGE LITTERAL, vous pouvez dire : « je vais mettre le contenu du coffre numéro 3 dans ma poche » l’emplacement contenant la valeur utile est donné DIRECTement dans la phrase. Mais il faut d’abord aller ouvrir le coffre pour savoir ce que l’on va effectivement mettre en poche. exemple: MOVWF f © ESPRIT 2009 H.JEDIDI & M.ABDALLAH
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). © ESPRIT 2009 H.JEDIDI & M.ABDALLAH
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 © ESPRIT 2009 H.JEDIDI & M.ABDALLAH
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 registre FSR © ESPRIT 2009 H.JEDIDI & M.ABDALLAH
Les registres FSR et INDF (exemple) Ecrire l’adresse pointée dans le registre FSR. 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 © ESPRIT 2009 H.JEDIDI & M.ABDALLAH
Adressage Relatif L’opérande détermine une position relatif d’adresse mémoire. © ESPRIT 2009 H.JEDIDI & M.ABDALLAH
Jeu d’instructions © ESPRIT 2009 H.JEDIDI & M.ABDALLAH
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 © ESPRIT 2009 H.JEDIDI & M.ABDALLAH
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. © ESPRIT 2009 H.JEDIDI & M.ABDALLAH
Groupes d’instructions: 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. © ESPRIT 2009 H.JEDIDI & M.ABDALLAH
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é. © ESPRIT 2009 H.JEDIDI & M.ABDALLAH
Opérations littérale et de contrôle : K représente une constante sur 8 ou 11 bits ou une valeur littérale. © ESPRIT 2009 H.JEDIDI & M.ABDALLAH
Jeu d’instructions: Premier groupe: © ESPRIT 2009 H.JEDIDI & M.ABDALLAH
Jeu d’instructions: Deuxième groupe: © ESPRIT 2009 H.JEDIDI & M.ABDALLAH
Jeu d’instructions: 3. Troisième groupe: © ESPRIT 2009 H.JEDIDI & M.ABDALLAH
Description des instructions: © ESPRIT 2009 H.JEDIDI & M.ABDALLAH
© ESPRIT 2009 H.JEDIDI & M.ABDALLAH
ADDWF (2) Exemple 2 Exemple 1 MOVF 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 MOVF VentesDuMois,W ADDWF,1 Mettre dans W le contenu de mavariable et additionner mavariable avec lecontenu de W et ranger le resultat dans ma variable. © ESPRIT 2009 H.JEDIDI & M.ABDALLAH
© ESPRIT 2009 H.JEDIDI & M.ABDALLAH
© ESPRIT 2009 H.JEDIDI & M.ABDALLAH
© ESPRIT 2009 H.JEDIDI & M.ABDALLAH
© ESPRIT 2009 H.JEDIDI & M.ABDALLAH
© ESPRIT 2009 H.JEDIDI & M.ABDALLAH
Selon la réponse, l’instruction prend 1 ou 2 cycles d’horloge. 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. © ESPRIT 2009 H.JEDIDI & M.ABDALLAH
© ESPRIT 2009 H.JEDIDI & M.ABDALLAH
© ESPRIT 2009 H.JEDIDI & M.ABDALLAH
© ESPRIT 2009 H.JEDIDI & M.ABDALLAH
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. © ESPRIT 2009 H.JEDIDI & M.ABDALLAH
© ESPRIT 2009 H.JEDIDI & M.ABDALLAH
© ESPRIT 2009 H.JEDIDI & M.ABDALLAH
© ESPRIT 2009 H.JEDIDI & M.ABDALLAH
© ESPRIT 2009 H.JEDIDI & M.ABDALLAH
© ESPRIT 2009 H.JEDIDI & M.ABDALLAH
© ESPRIT 2009 H.JEDIDI & M.ABDALLAH
© ESPRIT 2009 H.JEDIDI & M.ABDALLAH
© ESPRIT 2009 H.JEDIDI & M.ABDALLAH
© ESPRIT 2009 H.JEDIDI & M.ABDALLAH
© ESPRIT 2009 H.JEDIDI & M.ABDALLAH
© ESPRIT 2009 H.JEDIDI & M.ABDALLAH
© ESPRIT 2009 H.JEDIDI & M.ABDALLAH
© ESPRIT 2009 H.JEDIDI & M.ABDALLAH
© ESPRIT 2009 H.JEDIDI & M.ABDALLAH
© ESPRIT 2009 H.JEDIDI & M.ABDALLAH
© ESPRIT 2009 H.JEDIDI & M.ABDALLAH
© ESPRIT 2009 H.JEDIDI & M.ABDALLAH
© ESPRIT 2009 H.JEDIDI & M.ABDALLAH
© ESPRIT 2009 H.JEDIDI & M.ABDALLAH
© ESPRIT 2009 H.JEDIDI & M.ABDALLAH
© ESPRIT 2009 H.JEDIDI & M.ABDALLAH
© ESPRIT 2009 H.JEDIDI & M.ABDALLAH
© ESPRIT 2009 H.JEDIDI & M.ABDALLAH
© ESPRIT 2009 H.JEDIDI & M.ABDALLAH
© ESPRIT 2009 H.JEDIDI & M.ABDALLAH
© ESPRIT 2009 H.JEDIDI & M.ABDALLAH
© ESPRIT 2009 H.JEDIDI & M.ABDALLAH
© ESPRIT 2009 H.JEDIDI & M.ABDALLAH
Resumé © ESPRIT 2009 H.JEDIDI & M.ABDALLAH
© ESPRIT 2009 H.JEDIDI & M.ABDALLAH
© ESPRIT 2009 H.JEDIDI & M.ABDALLAH
© ESPRIT 2009 H.JEDIDI & M.ABDALLAH
© ESPRIT 2009 H.JEDIDI & M.ABDALLAH
© ESPRIT 2009 H.JEDIDI & M.ABDALLAH
© ESPRIT 2009 H.JEDIDI & M.ABDALLAH