IUT Informatique 1A - FI S2 Introduction `a l - e-campus

publicité
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
Téléchargement