Introduction aux Microprocesseurs ¾ Les langages de programmation ¾ La programm

Introduction aux Microprocesseurs ¾ Les langages de programmation ¾ La programmation d’un microprocesseur ¾ J d’i t ti d 6809 ¾ Durée d’exécution d’un programme ¾ Les champs d’un programme en langage assembleur ¾ Jeux d’instructions du 6809 ¾ Les champs d un programme en langage assembleur ¾ Modes d’adressage du 6809 9 Mode d'adressage immédiat 9 M d d' d ét d ( t d d) 9 Mode d'adressage étendu (extended) 9 Mode d'adressage inhérent 9 Mode d'adressage direct 9 Mode d’adressage indirect Mode d adressage indirect 9 Mode d'adressage indexé 9 L'unité arithmétique et logique ¾ Pointeur de pile 9 Instructions manipulant les piles 9 Mouvement du pointeur de la pile 9 Contenu de la pile 9 O d d' il t t d dé il t 1 9 Ordres d'empilement et de dépilement. II.1. Les langages de programmation Il existe plusieurs langages de programmation; toutefois, le langage machine est le seul compris par les microprocesseurs et est incontestablement le plus rapide à exécuter. L l bl t d’ tili d é i l l Le langage assembleur permet d’utiliser des mnémoniques pour remplacer les codes machines difficiles à interpréter. N.B. R Les langages évolués bénéficient de librairies de fonctions rendant la programmation plus simple à développer. Rq 2 NOM EXEMPLE DE PROGRAMME PROGRAMME DE TRADUCTION EN MACHINE REMARQUES LANGAGE MACHINE En binaire: 10100101 01100000 01100101 01100001 10000101 Hexadecimal Loader - accepte les codes hexadécimaux - les traduit en binaire - les place en ordre dans la mémoire - le seul langage compris par le CPU - le programme en langage machine est appelé programme objet - le programme Hexadecimal Loader fait en général partie d'un programme appelé 01100010 En hexadécimal: A5 60 65 61 85 mémoire général partie d un programme appelé MONITEUR. ses fonctions: examiner et modifier le contenu des mémoires et des registres; il permet l'exécution partielle ou totale du programme 62 LANGAGE ASSEMBLEUR LDA $60 ADC $61 STA $62 ASSEMBLEUR - accepte les mnémoniques - les traduit en binaire - le programme écrit sous forme mnémonique est appelé programme Source - il contient les champs: étiquette, mnémonique - les place généralement dans un fichier p q , q (instruction avec opérande) et commentaire. LANGAGE DE HAUT NIVEAU En BASIC: PRINT Allo N=PEEK(96) INTERPRETEUR traduit et exécute le programme - langage orienté vers les procédures plutôt que des instructions données au CPU - Basic - C - Pascal - ... POKE 98,N END - traduit et exécute le programme ligne par ligne. COMPILATEUR: - traduit tout le programme en machine avant de l'exécuter. des instructions données au CPU - prog. source indépendant du CPU ou de l'ordinateur. 3 II.2. La programmation d’un microprocesseur Un programme est une suite logique d'instructions dont l'objectif est de produire Un programme est une suite logique d instructions dont l objectif est de produire un comportement désiré de la machine. Tous les microprocesseurs comprennent un seul type de programme; c'est le programme R Tous les microprocesseurs comprennent un seul type de programme; c est le programme machine appelé aussi programme binaire ou objet. Rq Voici un programme objet exécutable par un MC6809: Voici un programme objet exécutable par un MC6809: code binaire fonction instruction 1000 0110 opcode 1ère instruction 0101 1010 opérande 0101 1010 opérande 1011 0111 opcode 2ème instruction 0000 0001 opérande 0000 0000 opérande 0011 1111 opcode 3ème instruction Représentation du programme en mnémonique. Pour plus de clarté, l'opcode et l'opérande ont été réunis sur la même ligne. Code machine Opcode Opérande 86 5A LDA #$5A 1ère instruction B7 01 00 STA $0100 2ème instruction SWI 3ème instruction 4 II.3. Jeux d’instructions du 6809 L t d difi ti é t l’ bl d i t ti tili bl l 6809 La carte de codification présente l’ensemble des instructions utilisables par le 6809. Immediat Direct Indexed Extended Inherent Addressing Modes 5 0 1 2 3 Op ~ # Op ~ # Op ~ # Op ~ # Op ~ # Forms Instruction Description H C V Z N LD LDA LDB 86 C6 2 2 2 2 96 D6 4 4 2 2 A6 E6 4+ 4+ 2+ 2+ B6 F6 5 5 3 3 M -> A M -> B • • 0 0 • • 1 7 8 9 5 6 4 3 2 Chaque colonne est numérotée et correspond à ce qui suit Chaque colonne est numérotée et correspond à ce qui suit. Col. #1 Contient les instructions possibles pour le microprocesseur. Col #2 Détermine si l'instruction opère avec la mémoire ou avec un registre; Col. #2 Détermine si l instruction opère avec la mémoire ou avec un registre; dans ce cas avec quel registre. Col. #3, 4, 5, 6 et 7 Ces 5 colonnes représentent les 5 types de base des modes d'adressages du microprocesseur: d adressages du microprocesseur: Immediat (opérande: une valeur) Direct (opérande: une adresse de 8 bits) Indexed (opérande: un registre pointeur) Extended (opérande: une adresse de 16 bits) 5 Extended (opérande: une adresse de 16 bits) Inhérent (il n'y a pas d'opérande) Chacune de ces colonnes est subdivisée en 3 autres colonnes: Op (code d'opération de l'instruction) Op (code d opération de l instruction) ~ (nombre de cycles de l'instruction) # (nombre d'octets de l'instruction) C l #8 C' t li ti t d f it l'i t ti Col. #8 C'est une explication courte de ce que fait l'instruction. Col. #9 Cette section (5 colonnes) indique comment les drapeaux H, N, Z, V et C vont réagir à l'exécution de l'instruction. Vous trouverez la légende des symboles utilisés dans ces colonnes sur la carte de codification à la suite symboles, utilisés dans ces colonnes, sur la carte de codification à la suite des instructions. II.3. Durée d’exécution d’un programme p g La durée d’exécution d’une instruction se calcule en tenant compte du nombre de cycles de l’instruction, multiplié par la période du cycle machine du microprocesseur. La fréquence d’horloge déterminant la durée du cycle machine est égale à la fréquence du crystal divisée par quatre. N.B. si la fréquence du crystal du microprocesseur 6809 vaut 4 Mhz, alors la fréquence d’horloge (E ou Q) vaut Fréq. de E = Fréq. du crystal / 4 = 1 Mhz La durée d’un cycle machine est égale à la période de l’horloge (E ou Q) et vaut: Période de E = 1 / Fréq de E = 1µs Exemple 6 Période de E = 1 / Fréq. de E = 1µs Pour une instruction durant 5 cycles, le temps d’exécution est donc 5 fois le temps d’un cycle machine c’est-à-dire 5 µs cycle machine, c est à dire 5 µs II.3.1. Boucle de délai CODE MACHINE ETIQUETTE OPCODE OPÉRANDE NBR. DE CYCLES 86 05 LDA #5 2 4A ENCORE DECA 2 26 FD BNE ENCORE 3 26 FD BNE ENCORE 3 39 RTS 5 Cet exemple montre un sous-programme permettant de créer un délai dont la durée dé d d l l l é d l i t A dépend de la valeur placée dans le registre A On peut voir, par l’analyse du programme, que seules les instructions DECA et BNE vont se répéter 5 fois vont se répéter 5 fois Le calcul du nombre de cycles total pour le programme est: pour le programme est: nombre de cycles = 2 + 5 * (2 + 3) + 5 = 32 cycles Avec un crystal à 4 Mhz, un cycle vaut 1µs et la durée du sous-programme est: durée = 32 cycles * 1µs = 32 µs 7 II.4. Les champs d’un programme en langage assembleur ADRESSE HEXA CODE MACHINE ÉTIQUETTE MNÉMONIQUE Opération Opérande COMMENTAIRES ORG $0200 adresse du prog. 0200 A5 DONNEE DB $A5 déclaration de la variable DONNEE 0200 PORTB EQU $6002 d l i d l 0200 PORTB EQU $6002 déclaration de la constante PORTB 0201 B6 02 00 DEBUT LDA DONNEE lire la donnée et la placer dans le reg. A 0204 B7 60 02 STA PORTB déposer le code du reg. A sur le port de sortie 0207 7E 02 01 JMP DEBUT le programme boucle sur lui-même END directive fin de programme pour l’assembleur END directive fin de programme pour l assembleur ADRESSE: La progression des adresses dépend de la longueur en octets de l'instruction. ODE MACHINE: Ce sont les codes sous la forme hexadécimale correspondant à l'instruction. ÉTIQUETTE: Ce sont des mots représentatifs qui servent de références. Elles remplacent des adresses ou des constantes. MNÉMONIQUE: C'est l'instruction complète incluant l'opération et l'opérande. OPERATION: C'est l'instruction de base. OPERANDE: C'est la donnée de l'instruction. Elle peut représenter une valeur, une adresse ou un registre. Certaines instructions n'utilisent pas d’opérande. une adresse ou un registre. Certaines instructions n utilisent pas d opérande. OMMENTAIRE: Champ optionnel mais très utile pour la compréhension du programme. 8 II.5. Modes d’adressage du 6809 Dès que l'on commence à programmer il est extrêmement important de comprendre les Dès que l on commence à programmer, il est extrêmement important de comprendre les uploads/Industriel/ microprocessor-course-part-2.pdf

  • 20
  • 0
  • 0
Afficher les détails des licences
Licence et utilisation
Gratuit pour un usage personnel Attribution requise
Partager