IUT Informatique 1A - FI S2 Introduction à l’architecture 2016 – 2017 Sylvain Chevallier [email protected] TP 1 - Initiation à la programmation assembleur 68HC11 - groupe A Préambule Notions : assembleur, ports, instruction de base Prochain TP : saut non conditionnel, registre d’état Évaluation : Compte-rendu ramassé à la fin du TP Pour ce TP, vous démarrerez sur Windows et vous utiliserez le logiciel DevMic11acps. Il faut le lancer en mode simulateur. Il est normal d’avoir des erreurs de port de communication série (aucun matériel n’est connecté). Répondez pour passer outre ces erreurs. Ce logiciel permet d’écrire un programme en assembleur ou en C et de charger l’exécutable issu de la compilation du programme sur les microcontrôleurs de la famille MOTOROLA. Question 1 : 1. Écrire le programme ex0.asm reproduit dans le listing de code ci-après. Écrire l’algorigramme correspondant à ce programme. Expliquer le fonctionnement et le résultat attendu. 2. Quelles sont les deux façons d’écrire des commentaires ? 3. Cliquer sur Filière > Assembler. Revenez sur l’éditeur et sélectionnez l’onglet listing. Vous avez réalisé l’assemblage du programme, c’est-à-dire sa traduction entre mnémoniques (instructions) et ce que comprend réellement le processeur (binaire ou hexadécimal). À partir des aides (clic sur les instructions dans l’onglet “Source ASM”), indiquez la signification des différents champs (les 4 colonnes) sur l’onglet “listing”. 4. Combien de cycle machine dure ce programme, ligne 10 exceptée ? 5. Combien de temps dure ce programme sachant que le quartz (XTAL) est de f =7,3728 MHz ? On considérera ici qu’un cycle machine dure quatre périodes d’horloge, soit T = f4 . 1 1 2 3 4 5 6 7 8 9 10 11 12 ∗−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−− ∗ e x 0 . asm ∗−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−− PORTB equ $1004 START equ $C000 // d e b u t du programme o r g START l d a a #%10101010 s t a a PORTB bra ∗ end Question 2 : Repérer dans la documentation (voir sur e-campus) les adresses des registres mémoires suivants : PORTB, PORTC, DDRC, PORTE, PORTD, DDRD. Il faudra dans les programmes à écrire par la suite faire figurer ces adresses en entête des fichiers, car vous aurez à les utiliser souvent. Question 3 : Écrivez les programmes correspondant aux exercices 1, 2 et 3 du TD1. Question 4 : Écrivez le programme correspondant aux questions 1 et 3 de l’exercice 4 du TD 2. Pour vérifier le bon fonctionnement de votre programme, vous devrez l’exécuter en mode pas-à-pas. Dans ce mode, le simulateur exécute d’office la première instruction de votre programme avant de s’arrêter. Ainsi, si la première instruction est de lire le PORTE, elle sera exécutée avant que vous ne puissiez changer la valeur des entrées du PORTE. Pour éviter ce problème, vous pouvez commencer votre programme par l’instruction ldaa #0 qui chargera 0 dans l’accumulateur A, ce qui n’a absolument aucun effet mais vous laisse l’opportunité de modifier les valeurs du port d’entrée. Question 5 : Écrivez le programme de l’exercice 3 de la question 5 du TD 2. Question 6 : (facultative) Écrivez le programme de la question 6 du TD 2, même si vous ne l’avez pas abordée en TD. 2