Royaume du Maroc OFFICE DE LA FORMATION PROFESSIONNELLE ET DE LA PROMOTION DU T
Royaume du Maroc OFFICE DE LA FORMATION PROFESSIONNELLE ET DE LA PROMOTION DU TRAVAIL Première Année Programme de Formation des Techniciens Spécialisés en Électronique DIRECTION DE LA RECHERCHE ET INGENIERIE DE LA FORMATION Septembre 1995 Module 11 Introduction aux Microprocesseurs Résumé de Théorie Télécharger tous les modules de toutes les filières de l'OFPPT sur le site dédié à la formation professionnelle au Maroc : www.marocetude.com Pour cela visiter notre site www.marocetude.com et choisissez la rubrique : MODULES ISTA 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 International 2000 inc. à l’Office de la Formation Professionnelle et de la Promotion du Travail du Royaume du Maroc, pour sa propre utilisation au Maroc. Mis à part l’OFPPT, toute reproduction, en tout ou en partie, par quelque procédé 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 La programmation d’un microprocesseur 2-2 2.3 Jeux d’instructions du 6809 2-3 2.4 Durée d’exécution d’un programme 2-4 2.4.1 Boucle de délai 2-4 2.5 Les champs d’un programme en langage assembleur 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.6.4 Conseils pratiques pour la réalisation d’un ordinogramme 2-8 2.6.5 Exemple d’ordinogramme 2-8 2.7 Programmation structurée 2-9 2.7.1 Conseils pratiques pour l’écriture d’un programme en assembleur 2-9 2.7.2 Dépannage 2-10 2.7.3 Documentation 2-10 2.8 Modes d’adressage du 6809 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.8.5 Mode d’adressage indirect 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 langage assembleur permet d’utiliser des mnémoniques pour remplacer les codes 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 La programmation d’un microprocesseur 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 difficile à comprendre et c’est pour cette raison qu’elle n'est pas utilisée. Pour améliorer 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, parce qu’il y a moins de touches à 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 Jeux d’instructions du 6809 La carte de codification présente l’ensemble des instructions utilisables par le 6809. La figure suivante montre comment décoder l’information sur cette carte 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 Durée d’exécution d’un programme 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. Dans le cas du microprocesseur 6809, la fréquence d’horloge déterminant la durée du cycle 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é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 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. Le nombre de uploads/S4/ introduction-aux-microprocesseurs-premiere-annee.pdf
Documents similaires
-
15
-
0
-
0
Licence et utilisation
Gratuit pour un usage personnel Attribution requise- Détails
- Publié le Aoû 29, 2021
- Catégorie Law / Droit
- Langue French
- Taille du fichier 0.5139MB