TP2: Adressage en assembleur ARM

Date limite: 15 février 2016 à 23h59

Ce travail pratique vaut 4% de la note totale du cours. À faire individuellement, il contient 25 questions comptabilisées sur un total de 100 points. Le travail est à remettre au plus tard lundi le 15 février à 23h59.

Objectifs

Ce travail pratique vise les objectifs suivants:

  1. Comprendre la relation entre le contenu de la mémoire, les instructions exécutées et les données en mémoire;
  2. Comprendre comment les variables et les constantes sont représentées en code machine;
  3. Comprendre le fonctionnement de quelques instructions d’assembleur ARM;
  4. Approfondir la connaissance sur les microprocesseurs;
  5. S’initier au logiciel IAR Embedded Workbench.

Préparation

1. Installez le logiciel IAR Embedded Workbench

Suivez la procédure suivante pour installer le logiciel IAR Workbench. Il ne fonctionne que sous Windows, nous en sommes désolés.

  1. Rendez-vous à l’adresse http://supp.iar.com/Download/SW/?item=EWARM-EVAL, et téléchargez l'exécutable.
  2. Installez le logiciel sur votre ordinateur.
  3. Après l’installation, le gestionnaire de licence vous demandera d’enregistrer votre logiciel. Choisissez alors l’option « Kickstart, size-limited evaluation ». Vous pourrez alors utiliser le logiciel indéfiniment (les limitations imposées sur la mémoire ne nous affecteront pas).

Si vous éprouvez des difficultés avec l'obtention de la licence « kickstart », voyez ici pour des instructions pas à pas.

2. Créez votre projet

Après avoir installé le logiciel, suivez les étapes suivantes:

  1. Tout d’abord, créez un nouveau « workspace » : File -> New -> Workspace.
  2. Ensuite, créez un nouveau projet asm : Project -> Create new project, et sélectionnez le template asm sous l’option asm. Enregistrez le projet et le « workspace ».

3. Modifiez les configurations

Après avoir créé votre projet, modifiez ses configurations en suivant les étapes suivantes:

  1. Modifiez le processeur à émuler en allant dans Project -> Options, puis changez l'option Core dans la section Processor Variant vers ARM7TDMI (et non Cortex-M3 qui est la valeur par défaut). Après cette opération, cette fenêtre devrait avoir l'air de cette capture d'écran.
  2. Décochez la case Stack pointer(s) not valid until program reaches : dans Tools -> Options -> Stack.
  3. Affichez les numéros de lignes en allant dans Tools -> Options. Sous l’onglet "Editor", cochez "Show line numbers".

Les deux étapes suivantes ne peuvent être effectuées que lorsque vous êtes en mode « Debug ». Pour ce faire, cliquez sur la petite flèche verte dans la barre d'outils (nommée « Download and debug », voir capture d'écran). Une fois dans ce mode, le menu View contiendra les possibilités requises:

  1. Affichez le contenu des registres en allant dans View -> Registers.
  2. Affichez le contenu de la mémoire en allant dans View -> Memory.

Assurez-vous d'effectuer toutes ces étapes, sinon le programme du TP pourrait ne pas fonctionner correctement!

4. Remplacez le fichier asm.s

Maintenant que votre projet est créé et configuré convenablement, remplacez le fichier asm.s par celui-ci. Vous êtes prêts à répondre aux questions!

Questionnaire

Comme pour le TP1, les questions sont disponibles directement sur le portail des cours. Veuillez donc y répondre avant la date limite indiquée ci-haut. La politique des retards mentionnée dans le plan de cours sera appliquée. Pour toutes questions concernant la procédure de remise ou le travail lui-même, posez vos questions sur le forum!

Vous pouvez le modifier le fichier asm.s à votre guise pour faire des tests et parfaire votre compréhension de l'assembleur ARM, mais assurez-vous de toujours charger sa version originale avant de répondre aux questions. Certaines questions assument que les instructions sont exécutées dans un certain ordre, et modifier cet ordre aurait un impact sur les choix de réponse.

Ressources

Remerciements

Merci à Étienne Tremblay d'avoir créé le TP original qui a servi d'inspiration pour celui-ci. Merci à Marc-André Gardner pour l'élaboration de la version "ENA" du TP!

Retour à la page web du cours.