Logo ÉTS
Session
Cours
Responsable(s) Iannick Gagnon, Pierre Bélisle

Se connecter
 

Sauvegarde réussie
Echec de sauvegarde
Avertissement





Cours

BLOCS MATIÈRE

 

 

 

 

 

 

 

 

Bloc 1
(3 semaines)

 

 

Architecture d’un ordinateur

- Architectures Von Neumann et Harvard

- Unité centrale de traitements (UCT), cartes (PCI et mémoire), bus et périphériques d’entrées/sorties.

- Types de mémoire (RAM, ROM, PROM, EPROM, EEPROM, flash, cache)

- Mémoire virtuelle

Base numérique (binaire, octale, décimale, hexadécimale).

Représentation des nombres et des symboles :

- Nombres entiers (positif, négatif)
- Caractères alphabétiques
- Nombre réels à simple et double précision (IEEE-754)

Calcul à virgules flottantes

Composition d’un processeur (UCT) :

- Bus de données, registres, unité arithmétique et logique (UAL), unités de stockage, unité de contrôle et de commande (UCC)

Bases du traitement parallèle  (branchements, dépendances, instructions) :

            - Exécution séquentielle sur mémoire unique (SISD)
            - Instruction unique sur données variées (SIMD)
            - Instructions variées sur données variées (MIMD)

Semaine 4

Intra bloc 1  : 3 heures

 

 

 

 

 

 

 

 

 

Bloc 2
(3 semaines)

 

Fonctionnement d’un processeur :  

Organisation de la mémoire : tas ou heap, pile ou stack, pointeur de pile ou stack pointer et compteur ordinal ou program counter

Programmation à l’aide du langage assembleur d’une machine virtuelle

- Éléments de base du langage assembleur

-Registres (A, X, Z, N, C, V)
-Instructions machine - Pep/8 (LDr, STr, LDBYTEr, STBYTEr, ADDr,
 SUBr, NEGr, NOTr, ORr, ANDr, ASLr, ASRr, ROLr, RORr, NOP, STOP)

- Comparaison booléenne

- Branchement absolu et conditionnel (BRLT, BRLE, BREQ, BRGE, BRGT)
- CPr

- Variables globales : .WORD, .BYTE, .ASCII, .BLOCK, .ADDRSS
- Constantes littérales : .EQUATE
- Entrées/sorties (DECI, CHARI, DECO, CHARO)
- Structures de contrôle (if, if-else, if-else-if, switch-case, while, do-while et for)
- Arithmétique de base avec les entiers et les réels (+, -, * et /)
- Modes d'adressage : immédiat (i), direct (d) et indirect (n)

*** Programme principal sans sous-programme avec variables globales

Semaine 8

Intra blocs 2 : 3 heures

Bloc 3
(5 semaines)

Programmation à l’aide du langage assembleur d’une machine virtuelle (suite)

- Déclaration de tableaux statiques à une et deux dimensions (suite d'octets consécutifs).

  • Mode d'adressage indexé (x) 

- Pile système et pointeur de pile en Pep8 (SP)

  • Empile (adresse décroissante) et désempile (adresse croissante)
  • ADDSP et SUBSP

- Variables globales (heap) version variables locales (pile)

  • Mécanisme d'empilement des variables locales
  • Déclaration de variables et de tableaux (avec son adresse) sur la pile (MOVSPA)

- Appel (call) et écriture de sous-programmes (avec et sans paramètre)

  • CALL, RETn
    • Passage de paramètres
      • Partage des responsabilités entre les sous-programmes appelants et appelés
      • Déclaration des constantes pour les paramètres effectifs et empilement
      • Modes d'adressage sur la pile : direct (s), indexé (sx), indirect (sf) et indirect indexé (sxf)
      • Passage par copie de valeur
      • Mécanisme de dépilement des variables locales et des paramètres formels avant le retour d'un sous-programme
      • Passage par copie d'adresse (p. ex. scanf("%d", &x);)
  • Fonction et valeur de retour

- Enregistrement : Structures simples et tableaux d'enregistrements

  • Déclaration sur la pile et passage de paramètres par copie et par copie d'adresse (référence).

- Explication simple d'une table d'allocation, d'allocation dynamique sur le tas ou heap et de contraintes d'alignement.

Semaine d'examens Final : 3 heures

 

 

Laboratoires et travaux pratiques

L'étudiante ou l'étudiant expérimentera les notions vues au cours sous forme de recherche et d'exercices.