INTRODUCTION AUX MICROPROCESSEURS RÉSUMÉ DE THÉORIE Écrire un Programme Opérati

INTRODUCTION AUX MICROPROCESSEURS RÉSUMÉ DE THÉORIE Écrire un Programme Opérationnel en Assembleur TECCART INTERNATIONAL 2000 inc. 3155, boul. Hochelaga, Montréal, Québec (Canada) H1W 1G4 RÉDACTION Serge Leblanc DESSINS ET CONCEPTION GRAPHIQUE Serge Leblanc RÉVISION TECHNIQUE Pierre Asselin & Christian Lépine RÉVISION LINGUISTIQUE François Gaudreau COMMISSION DE VALIDATION Formateurs de l'OFPPT Les droits de reproduction et de diffusion de ce document sont cédés par Teccart du Travail du Royaume du Maroc, pour sa propre utilisation au Maroc. que ce soit, est interdite. Mp_Rt2.Doc, imprimé à Montréal, le 18 avril 2017 TABLE DES MATIÈRES 2. ÉCRIRE UN PROGRAMME OPERATIONNEL EN ASSEMBLEUR 2-1 2.1 Les langages de programmation 2-1 2-2 2-3 rogramme 2-4 2.4.1 Boucle de délai 2-4 2-5 2.6 Comment rédiger un programme 2-6 2.6.1 Description de la tâche 2-6 2.6.2 Algorithme 2-6 2.6.3 Ordinogramme 2-6 2-8 2-8 2.7 Programmation structurée 2-9 2-9 2.7.2 Dépannage 2-10 2.7.3 Documentation 2-10 2-11 2.8.1 Mode d'adressage immédiat 2-11 2.8.2 Mode d'adressage étendu (extended) 2-11 2.8.3 Mode d'adressage inhérent 2-11 2.8.4 Mode d'adressage direct 2-12 2-12 2.8.6 Mode d'adressage indexé 2-13 2.9 Pointeur de pile 2-15 2.9.1 Instructions manipulant les piles 2-15 2.9.2 Mouvement du pointeur de la pile 2-16 2.9.3 Contenu de la pile: 2-16 2.9.4 Ordres d'empilement et de dépilement. 2-16 2.9.5 Exemple de programme utilisant la pile 2-17 2.9.6 Observations sur le fonctionnement de la pile 2-18 2.10 Exercices 2-19 Résumé de Théorie Introduction aux Microprocesseurs Programmer en Assembleur page 2-1 OFPPT/TECCART 2. Écrire un Programme Opérationnel en Assembleur 2.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. Le machines difficiles à interpréter. Les langages évolués bénificient de librairies de fonctions rendant la programmation plus simple à développer. NOM EXEMPLE DE PROGRAMME PROGRAMME DE TRADUCTION EN MACHINE REMARQUES LANGAGE MACHINE En binaire: 10100101 01100000 01100101 01100001 10000101 01100010 En hexadécimal: A5 60 65 61 85 62 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é MONITEUR. ses fonctions: examiner et modifier le contenu des mémoires et des registres; il permet l'exécution partielle ou totale du programme LANGAGE ASSEMBLEUR LDA $60 ADC $61 STA $62 ASSEMBLEUR - accepte les mnémoniques - les traduit en binaire - les place généralement dans un fichier - le programme écrit sous forme mnémonique est appelé programme Source - il contient les champs: étiquette, mnémonique (instruction avec opérande) et commentaire. LANGAGE DE HAUT NIVEAU - Basic - C - Pascal - ... En BASIC: PRINT Allo N=PEEK(96) POKE 98,N END INTERPRETEUR - traduit et exécute le programme ligne par ligne. COMPILATEUR: - traduit tout le programme en machine avant de l'exécuter. - langage orienté vers les procédures plutôt que des instructions données au CPU - prog. source indépendant du CPU ou de l'ordinateur. Résumé de Théorie Introduction aux Microprocesseurs Programmer en Assembleur page 2-2 OFPPT/TECCART 2.2 Pour commencer, définissons ce qu'est un programme. On peut dire simplement qu'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 machine appelé aussi programme binaire ou objet. Voici un programme objet exécutable par un MC6809: code binaire fonction instruction 1000 0110 opcode 1ère instruction 0101 1010 opérande 1011 0111 opcode 2ème instruction 0000 0001 opérande 0000 0000 opérande 0011 1111 opcode 3ème instruction Figure 2-1 Programme objet (binaire) Le terme opcode signifie operational code ou code d'opération. Ce code représente un ordre donné au microprocesseur. Lorsqu'une opérande est présente, elle suit toujours l'opcode et représente, soit une valeur immédiate ou réelle ou une adresse vers laquelle le microprocesseur doit communiquer. Il est toutefois possible que l'opérande ne soit pas requise s'il s'agit d'opération interne du microprocesseur (mode inhérent). Comme vous le remarquez, la représentation du programme sous la forme binaire est la situation, on peut utiliser la représentation hexadécimale. Cela permet de diminuer les erreurs lors de l'entrée du programme en mémoire appuyer. Le même programme sous la forme hexadécimale: code hexadéc. fonction instruction 86 opcode 1ère instruction 5A opérande B7 opcode 2ème instruction 01 opérande 00 opérande 3F opcode 3ème instruction Figure 2-2 Programme objet (hexadécimal) On peut très vite conclure que le programme objet, même transformé en hexadécimal, n'est pas très commode car il est difficile, pour un humain, d'interpréter ce que fera celui- ci. Dans le but de faciliter la compréhension du programme, on va associer à chaque instruction une mnémonique qui est une représentation de l'instruction sous la forme d'un mot court qui, habituellement, est descriptif et plus facile à mémoriser. Résumé de Théorie Introduction aux Microprocesseurs Programmer en Assembleur page 2-3 OFPPT/TECCART 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 3F SWI 3ème instruction Figure 2-3 Programme avec mnémoniques 2.3 e de codification. Immediat Op ~ # Direct Op ~ # Indexed Op ~ # Extended Op ~ # Inherent Op ~ # Addressing Modes Forms Instruction Description H C V Z N 5 0 1 2 3 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 Figure 2-4 Carte de codification du 6809 Chaque colonne est numéroté 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; 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: 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) 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) ~ (nombre de cycles de l'instruction) # (nombre d'octets de l'instruction) 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 des instructions. Résumé de Théorie Introduction aux Microprocesseurs Programmer en Assembleur page 2-4 OFPPT/TECCART 2.4 e de cycles machine est égale à la fréquence du crystal divisée par quatre. Par exemple, si la fréquence du crystal du microprocesseur 6809 vaut 4 Mhz, alors la Fréq. de E = Fréq. du crystal / 4 = 1 Mhz Période de E = 1 / Fréq. de E = 1µs -à- mence avec le signe ~. 2.4.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 39 RTS 5 Cet exemple montre un sous-programme permettant de créer un délai dont la durée dépend de la valeur placée dans le registre A. que seules les instruction DECA et BNE vont se répéter 5 fois. Le calcul du nombre de cycles total 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 Résumé de Théorie Introduction aux Microprocesseurs Programmer en Assembleur page 2-5 OFPPT/TECCART 2.5 Voici un exemple de programme en langage assembleur. Les champs étiquettes, mnémonique et commentaires sont créés par le programmeur. Les champs adresse hexa. et code machine sont générés par un programme nommé 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é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 ADRESSE: La progression des adresses dépend de la longueur en octets de l'instruction. CODE MACHINE: Ce sont les codes sous la forme hexadécimale correspondant à l'instruction. On les trouve sur la carte de codification du MC6809. É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 uploads/S4/ 6809-ofppt.pdf

  • 18
  • 0
  • 0
Afficher les détails des licences
Licence et utilisation
Gratuit pour un usage personnel Attribution requise
Partager
  • Détails
  • Publié le Oct 05, 2021
  • Catégorie Law / Droit
  • Langue French
  • Taille du fichier 1.7539MB