IFT 1227 (hiver 2008)
Architecture des ordinateurs I

Devoir 3

Programmation du robot en langage assemblage

L’objectif de ce  devoir est d’enrichir un robot d’un programme qui  lui permettrait d’interpréter et d’obéir  à un certain nombre de commandes. Le robot est doté de roues pouvant tourner de manière indépendante et d'une diode bi-colore: vert-rouge.

Le robot possède une mémoire de commandes de 256  octets et une mémoire de données de 256 octets aussi. L’octet 0 de la mémoire des données est appelé accu dans le reste de ce texte. Une période désigne un temps de 500 ms.

Au repos, le robot ne bouge pas et aucune diode n’est allumée. Après l’exécution d’une commande, le robot se remet à l’état de repos et exécute la commande suivante. Les commandes sont exécutées séquentiellement. Chaque commande est sur 1 ou 2 octets. Le différentes commandes sont :

 

Format

 

Avance

01

si l’accu est négatif il recule sinon il avance. La valeur absolue de l’accu désigne le nombre de périodes de mouvement.

Clignote

02

si l’accu est négatif le clignotement est rouge sinon il est vert. La valeur absolue de l’accu désigne le nombre de périodes de clignotements.

Tourne

03

L’accu contient le membre de quarts de tour à effectuer. Il faudra calibrer le temps de rotation de votre robot. Si l’accu est négatif le sens est celui des aiguilles d’une montre sinon c’est le sens contraire.

Load

04 xx

Charger l’accu avec le contenu de la mémoire d’adresse xx.

Store

05 xx

Charger la mémoire d’adresse xx  avec le contenu de l’accu.

Add

06 xx

Additionner à l’accu le contenu de la mémoire d’adresse xx.

Sub

07 xx

Soustraire à l’accu le contenu de la mémoire d’adresse xx.

Saut

08 yy

Aller à la commande d’adresse absolue yy

JZ

09 yy

Si l’accu est nul alors aller à la commande d’adresse absolue yy sinon continuer en séquence.

JP

0A yy

Si l’accu est positif alors aller à la commande d’adresse absolue yy sinon continuer en séquence.

SOS

0B

Le robot s’arrête et clignote en rouge 3 clignotement courts, suivis de trois longs, suivis de trois courts et puis tout s’éteint. Un clignotement court correspond à un clignotement qui dure en tout une période, alors qu’un clignotement long, la lumière rouge reste allumée rependait 2.5 périodes et s’éteint pendant une demi période. Le SOS indique la fin des commandes.

Le passage à la commande suivante se fait après la terminaison de commande sous exécution.

Pour plus de précision lors d'une manœuvre de rotation, afin que le robot conserve son centre de rotation, vous devez faire pivoter ses deux roues en sens inverse l'une de l'autre.

Le but de ce TP est donc d'écrire un interpréteur de commandes sur le micro-contrôleur du robot. Vous devrez donc pouvoir exécuter un « fichier » de commandes que l'on donnera en entrée à votre robot.

Consignes :

·        Remettez une seule version du fichier Tp3.asm

·        Vérifiez votre compilation avant la remise. Si un programme ne compile pas, il ne sera même pas regardé.

·        Chaque fichier doit commencer par une en-tête reprenant les noms et les codes permanents des deux auteurs. 

·        Les travaux se font obligatoirement par équipes de deux. En cas d’empêchement majeur, prendre rendez-vous immédiatement pour expliquer la situation. N’avoir trouvé personne n’est pas un empêchement majeur. Toutes les personnes qui craignent de se retrouver dans cette situation doivent contacter le démonstrateur suffisamment tôt pour qu’il puisse lui-même constituer des équipes avec les personnes concernées.

·        Chaque auteur doit comprendre l’entièreté du travail et en remettre sa propre copie de manière électronique. Ce sera la preuve qu’il assume la responsabilité du contenu du travail. Une pénalité majeure sera appliquée si les deux copies remises sont différentes.

·        Si dans une équipe, une personne se retrouve forcée à réaliser la majeure partie du travail (parce que l’autre ne fait rien), elle doit en faire part avant la correction et la participation des deux personnes sera vérifiée.

·        Tout cas de plagiat détecté sera traité selon les règles de l’Université.

 

Procédure de remise :

DATE DE REMISE : 15 avril à 23 :59, remise du devoir dans le répertoire TP3