1 INTRODUCTION IFT209 – Programmation Système 2 Plan de cours • Présentation du plan de cours • Le cours vise à faire acquérir • Les connaissances de base en programmation dans les langages d’assemblages • Les rudiments en architecture des ordinateurs • Concepts relatifs • Aux types élémentaires de données • Aux structures de contrôle • Une méthode élémentaire de programmation • Les notions de base sur la gestion • Des entrées/sorties • Des interruptions 3 Assembleur vs C++ • Analogie entre les langages évolués (C++) et assembleurs énoncé (if, while, …) instructions (add, ba, …) type (int), classe (Stack) variable (int i, int A[20]) adresse mémoire fonction, méthode sous-programme méthode main programme variables locales registres locaux variables globales registres globaux passage de paramètres registres d’entrée/sortie appel de fonction branchement (call) retour branchement (ret, retl) entrées/sorties interruptions/bit d’état 4 Processus de développement • Analyse du problème à résoudre • Conception de la solution • Codification du programme • Test du programme 5 Règles d’écriture • Caractères ASCII (pas d’accent) • Lignes de 80 à 120 caractères • Utilisation de tabulation, ou d’espace, mais pas de mélange • Identification des auteurs au début du programme • Respect des règles pour la soumission (turnin) 6 Vision de la solution 7 Préparation au cours • Vous devez avoir lu le chapitre avant le cours • Le cours présente la matière, avec des explications supplémentaires • Chaque laboratoire contient une section à compléter avant d’arriver en classe • Vous devez faire valider la réalisation de cette section pour avoir vos points 8 Manuel et notes de cours • Les présentations du cours sont disponibles sur le site web • Le manuel du cours est obligatoire • « L’architecture du processeur SPARC et sa programmation en langage d’assemblage » • Couvre toute la matière, sauf le chapitre 12 • Disponible à la COOP de l’UdeS 9 Les exemples • Les exemples sont donnés en pseudo-code ou en langage d’assemblage SPARC v9, 64 bits. • Pour les laboratoires 7 et 8, le langage C et la version ARM 4 sont utilisés. 10 Évaluations • 8 laboratoires (2% chacun 16% de la session) 1. Les systèmes de numérations 2. L’architecture et l’accès aux données 3. L’écriture de programme assembleur 4. Les nombres entiers et à virgule flottante 5. Les tableaux et les structures de contrôle 6. Chaine de bit et chaine de caractères 7. Les interruptions et le ARM 8. Les interruptions et le ARM 11 Évaluations • 6 devoirs (4% chacun 24% de la session) 1. La compilation et le débogueur 2. Un programme SPARC 3. L’arithmétique entière avec précision infinie 4. Les Sudokus 5. Les additionneurs binaires 6. Printf et Scanf 12 Évaluations • Tous les laboratoires et les devoirs sont à faire en équipe de 2. • Les laboratoires sont remis à la fin du cours • Les devoirs sont remis de façon électronique • Les consignes propres à chaque devoir sont avec l’énoncé • Les devoirs et laboratoires non remis valent 0