Université du Québec à Chicoutimi jeudi le 23 février 2012.
Devoir 2
Programmation en assembleur (8SIF107) Ce devoir doit être remis au plus tard
le mercredi 15 mars 2008 avant 19h.
Instructions
* Pour faciliter la correction de vos programmes, il est recommandé de bien commenter vos programmes.
* Dans votre compte sur sunens, créez un répertoire dont le nom est devoir2
* Télécharger dans votre compte sunens : 1. fichier source de vos programmes 2. fichier exécutable
* Pour toute autre information, veuillez contacter votre chargé de TD, Edmond Lachance.
* Travaillez en équipe au plus de deux étudiant(e)s, remettez une seule copie par équipe.
* Il est strictement interdit pour une équipe de copier le travail d'une autre équipe.
* Le courriel de votre chargé de TD est : [email protected]
* Attention: ne modifiez plus vos programmes après la date limite.
* Important: n'oubliez pas d'interdire l'accès à vos fichiers ; vous êtes seul(e) responsable de votre compte.
===========================================================================================
Objectifs du TP
Au TP1, nous avons manipulé, en utilisant le langage C-C++, les conversions d’une base à une autre. Dans ce présent TP, nous reprenons la même problématique pour effectuer quelques unes de ces conversions en assembleur INTEL 8086. On se donne donc en entrée un nombre non négatif en décimal et, en sortie, nous devons effectuer les tâches suivantes.
1.Afficher son écriture en binaire.
2.Afficher son écriture en hexadécimal.
3.Afficher son écriture en BCD.
4.Déterminer et afficher le nombre de 0 que ce nombre contient en mode binaire.
5.Déterminer et afficher si ce nombre est impair ou pair.
6.Effectuer la somme (et non la multiplication) de ce nombre en BCD par lui-même.
Votre programme doit:
- être écrit dans le langage assembleur 8086.
- vérifier la validité de votre nombre en testant si les chiffres de votre nombre sont compris entre 0 et 9.
- être en mesure de traiter les nombres sans signe compris entre 0 et 255.
- tout nombre ou résultat inférieur à 0 ou supérieur à 255 est considéré comme non valide.
1