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

publicité
IUT Informatique 1A - FI S2
Introduction à l’architecture
2014 – 2015
Sylvain Chevallier
[email protected]
TP 6 - Assembleur et C - groupe A
Préambule
Notions : Pointeurs, compilation
Evaluation : Compte-rendu ramassé à la fin du TP
Pour ce TP, vous utiliserez le logiciel DevMic11acps, en mode simulateur.
Question 1 : Version C
1. Écrivez un programme en C permettant la saisie de 2 nombres entrés sur le PortE et le PortC, et
affichant un résultat de comparaison identique à l’exercice 1 du TD6.
2. Observez le résultat de la compilation C (transformation du programme C en assembleur 68HC11).
Expliquez l’architecture générale du programme (appel de la routine assembleur main).
3. Repérez les 4 fonctions de test (les 4 instructions assembleur)
4. Comment est faite la réservation d’une variable de type char ?
5. Ajoutez la déclaration d’un int et d’un float. Quel est la réservation effectuée ?
6. La déclaration d’un float entraı̂ne une réservation mémoire supplémentaire. Vérifiez-le en supprimant puis en ajoutant un float. Quelle est la taille de cette réservation mémoire supplémentaire ?
7. Quelle en est la raison d’après-vous ?
Question 2 : Version assembleur
1. Écrivez le même programme en assembleur directement et testez-le.
2. Comparez la taille des deux programmes. Concluez.
Question 3 : Adressage indexé
L’adressage indexé utilise un registre d’index (16 bits, registre x ou y).
Par exemple :
1
2
3
4
PORTB
equ $04
ldx #$1000
lda #$12
sta PORTB, x ; s t o c k a g e a c c u m u l a t e u r à l ’ a d r e s s e x+PORTB = $1000+$04=$1004
1
L’adressage indexé est utilisé principalement comme équivalent C des pointeurs pour manipuler les
tableaux.
1. Écrivez un programme assembleur qui :
— Par une simple réservation, réserve N cases mémoires (N sera déclaré dans un equ) à partir
de l’adresse $C400
— Pour N = 10, remplit par programmation ces N cases avec $02
2. Complétez ce programme pour faire la somme de ces 10 cases et affichez le résultat sur le PortB.
3. Écrivez le même programme en langage C
4. Comparez les 2 programmes :
— assembleur direct
— assembleur issu du C compilé
2
Téléchargement