% INF2171 — Organisation des ordinateurs et assembleur % UQAM — Département d'informatique % Plan de cours — Été 2020 * Horaires, locaux et enseignants: Responsable(s) du cours ======================= Coordination ------------ Privat, Jean PK-4830 poste 3314 Enseignement ------------- Bernard, Martin PK-4115 poste 3699 Les étudiants doivent consulter régulièrement leur courriel UQAM, moyen de communication du professeur avec le groupe-cours. Description du cours ==================== Objectifs --------- Familiariser l'étudiant avec le fonctionnement de l'ordinateur à partir des niveaux de l'assembleur, du langage machine et des circuits logiques. Sommaire du contenu ------------------- Description des unités de l'ordinateur (processeur, mémoire, bus, périphériques). Représentation et manipulation de l'information (bits, octets, entiers signés et non signés, flottants, pointeurs, tableaux, enregistrements). Organisation et accès à la mémoire (pile, tas et leurs adressages). Représentation et exécution des programmes en langage machine et en assembleur (jeux d'instructions, sous-programmes, entrées-sorties). Description de la machine en couches: circuits logiques, microprogrammation, langage machine, langage d'assemblage. Modalité d'enseignement ----------------------- Ce cours comporte une séance obligatoire de laboratoire (2 heures). Préalables académiques ---------------------- INF1120 Programmation I Objectif du cours ================= Le cours INF2170 permettra à l'étudiant d'acquérir une formation théorique et pratique sur les principes de fonctionnement des ordinateurs et des microprocesseurs. On examinera les concepts fondamentaux au niveau du matériel et du logiciel, à partir de la programmation en langage assembleur. On étudiera particulièrement le processeur Pep8, en mettant l'accent sur l'organisation architecturale et la programmation. Contenu du cours ================ Voici un aperçu des thèmes qui seront traités avant l'examen intratrimestriel : - Ordinateurs, microprocesseurs. Architecture générale d'un ordinateur: CPU, mémoire, disques, périphériques. - Concepts de la programmation en langage machine et en langage assembleur. Codage de l'informatique arithmétique sur ordinateur: addition, soustraction, multiplication, division. Codes de condition. Registres. - Éléments de base de l'assembleur. Instructions et directives. - Modes d'adressage et instructions du processeur Pep8. Codes de condition, branchements, boucles et tableaux. Structure, documentation et mise au point des programmes. - Pile et sous-programmes: appels simples. Voici un aperçu des thèmes qui seront traités après l'examen intratrimestriel: - Sous-programmes: appels, paramètres, utilisation de la pile. Sauvegarde des registres. Modes d'adressage sur la pile. - Structures de données : structures, pointeurs, utilisation du tas. - Instructions arithmétiques et logiques. Arithmétique réelle. - Interruptions : Vecteurs d'interruption. - Éléments de base des circuits logiques. Les séances de laboratoire font partie intégrante du cours. Modalités d'évaluation ====================== Certaines modalités ont changées (covid19) Description Pondération Échéance ----------------------------------- ------------- -------------- Examen intra (devoir à la maison) 25% 26 juin 2020 Examen final (devoir à la maison) 25% 14 août 2020 Travail pratique 1 15% Travail pratique 2 15% Travail pratique 3 20% Le TP1 portera sur les structures de contrôle simples (boucles et condition) Le TP2 portera sur les sous-programmes et les tableaux Le TP3 portera sur l'allocation dynamique, l'utilisation de pointeurs et la récursivité ~~L'étudiant doit obtenir une moyenne cumulée aux examens égale ou supérieure à 50% et une moyenne cumulée aux devoirs égale ou supérieure à 50%. Si ce seuil n'est pas atteint, la mention échec sera automatiquement attribuée au cours et ce, quelles que soient les notes obtenues.~~ Cette règle est supprimée (covid19) La qualité du français constitue un critère d'évaluation. En principe, aucun retard n'est toléré pour les travaux pratiques (voir les normes relatives aux travaux pratiques de votre groupe spécifique): un groupe-cours peut cependant établir une politique particulière permettant un retard avec pénalité. Il est de la responsabilité de l'étudiant de faire des copies de sauvegarde de ses travaux. La perte d'une clef USB ou de son contenu n'est pas une raison valable pour remettre un travail en retard ou ne pas le remettre. Les examens se font à livres fermés et sans calculatrice ni aucun dispositif électronique. Materiel de cours ================= Le cours utilise le logiciel *Pep/8 Assembler and Simulator*, qui est installé dans les salles machines et librement téléchargeable au Le matériel pédagogique est accessible sur Moodle Calendrier ========== Plan prévisionnel (par semaine) 1. Introduction. Structure d'un ordinateur 2. Codage, langage machine, instructions 3. Arithmétique sur ordinateur 4. Éléments de base de l'assemblage 5. Adressage des opérandes, boucles et tableaux 6. Instructions 7. Structure et documentation 8. Examen intratrimestriel 9. Sous-programmes 10. Sous-programmes (suite) 11. Structures et données 12. Arithmétique réelle 13. Interruptions 14. Éléments de base des circuits logiques 15. Examen final Médiagraphie ============ Obligatoire ----------- - Gabrini, P. *Organisation des ordinateurs et assembleur* -- Janvier 2009, 238 PAGES. Sur Moodle. Ressources complémentaires -------------------------- - Privat, J. Diapositives de cours. Sur le site du cours () - Warford, J.S. Computer Systems -- 4th edition, Jones and Bartlett, 2010, 699 pages.