Académique Documents
Professionnel Documents
Culture Documents
Objectifs du TP :
▪ Apprendre à écrire un programme en langage assembleur.
▪ Apprendre à observer, analyser et comprendre les résultats obtenus après l’exécution des
différentes instructions (contenus des registres internes (R0-R12, PC, CPSR), et de la mémoire.
Une fenêtre va s’ouvrir vous invitant à choisir le processeur cible. Vous choisirez ARM7 – little
endian comme le montre la figure suivante.
1/6
Emna Amouri TP1 Programmation Assembleur
L2 STIC
Créez un nouveau fichier en cliquant sur File -> New. Ensuite, enregistrez le fichier avec
l’extension (.s). (tp1.s)
Puis, ajoutez ce fichier au projet. Pour cela, vous cliquez droit sur source_group (comme le
montre la figure suivante) et vous sélectionnez ADD existing files to group.
Voici un programme simple qui vous permet de découvrir la structure d’un programme en
langage assembleur. Vous allez écrire ce programme, l’exécuter et apprendre à utiliser les
différentes informations du simulateur (contenu des registres, de la mémoire, le PC, CPSR, ...).
2/6
Emna Amouri TP1 Programmation Assembleur
L2 STIC
X EQU 255
Y EQU -128
Z EQU 25800
ENTRY
; ENTRY –indique le début du programme
export _main
; EXPORT –indique que fonction __main sera utilisée dans un autre fichier
_main
; __main étiquette représentant le nom de cette partie du programme (fonction)
;fin de programme
NOP
END ; Mark end of file
QUESTION 1:
Tout d’abord, vous compilez le programme en cliquant sur le menu Project -> Build Target,
comme le montre la figure suivante.
3/6
Emna Amouri TP1 Programmation Assembleur
L2 STIC
Après avoir compilé le programme mais avant son exécution, regardez dans le dossier du travail
et ouvrez le fichier tp1.lst. Dans ce fichier, vous trouverez le code binaire de chaque instruction
et l’adresse mémoire à laquelle l’instruction est stockée.
Quelle est la taille du programme dans l’exemple utilisé ? Vérifiez le résultat obtenu à l’aide du
fichier tp1.map.
QUESTION 2 :
A partir du fichier tp1.map, à quelle adresse sera placée la première instruction du programme
de notre exemple ?
QUESTION 3 :
▪ Lancez l’exécution du programme en cliquant sur debug -> start debug session, ou
4/6
Emna Amouri TP1 Programmation Assembleur
L2 STIC
▪ Exécutez le programme pas à pas en cliquant sur F11. Observez les contenus des
registres R0-R12, CPSR et PC(R15) à chaque instruction exécutée.
▪ Quelle est la valeur du PC avant d’exécuter cette première instruction ? Et quelle est la
valeur du PC après son exécution et à quoi cela correspond ?
▪ Quel est l’état des indicateurs N,Z,C après l’instruction ADDS r5, r1,r2 ?
• 0x80000000 + 0x80000000
• 0xFF000000 OU 0x000000FF
5/6
Emna Amouri TP1 Programmation Assembleur
L2 STIC
NOP
; Section DATA pour initialiser le contenu de la mémoire
AREA mydata1, DATA, READONLY
TAB DCB 0x11, 0x22, 0x33, 0x44, 0x55, 0x66, 0x77, 0x88, 0x99, 0xAA, 0x01, 0x02, 0x03
6/6
Emna Amouri TP1 Programmation Assembleur