Module 5 | Mémoire (suite)

Nous avons vu dans la leçon précédente, les caractéristiques de la mémoire à savoir la localisation, l’adressage, la capacité et les méthodes d’accès. Nous avons également présenté comment les données sont stockées dans la mémoire. Nous avons fini la leçon précédente par présenter les performances de la mémoire.

Dans cette leçon, nous allons présenter les différents types de mémoires et la technologie utilisée dans la fabrication de ces mémoires. Nous allons aborder la programmation en mémoire et comment les espaces mémoires des programmes sont gérés au niveau de la mémoire.

À la fin de cette leçon, vous devriez être capable de :

  1. Distinguer les différents types de mémoires.
  2. Expliciter les espaces mémoires des programmes.
  3. Comprendre comment gérer les espaces mémoires.

Texte de référence

Commencez la lecture du texte de référence

Précision :

Si vous avez de la difficulté à comprendre certains éléments ou aspects du texte, communiquez avec le professeur. Il vous fournira des explications ou des exemples selon le cas. N’hésitez pas également à poser vos questions sur le forum du cours.

Capsules vidéos (facultatif)

Exemples d’exercices corrigés

Consultez ces exemples d’exercices avec solutions.

Quiz noté

Les Quiz vous permettent d’évaluer votre apprentissage de la matière. Ces quiz prennent la forme de questions à choix multiples. En plus de vous permettre de vérifier vos réponses, ils fournissent également, pour certaines questions, une courte explication de la réponse.

Débutez le quiz

Travail noté

Attention! Le cours comprend quelques consignes simples pour la remise des travaux ainsi que quelques rappels importants sont évoqués dans la section Présentation (dans la sous-section Évaluation des apprentissages_ Remise des évaluations) de la rubrique À propos du cours. Prenez le temps de les lire attentivement.

Cette activité notée compte pour 20 f% de la note globale.

Exercice 1 :

Écrivez un code assembleur qui permet de vérifier si un nombre est premier ou pas. Rappelons qu’un nombre premier est un nombre qui ne peut être divisé que par lui-même ou par 1. Si on le divise par un autre nombre, le reste de la division ne sera pas égal à 0.

Exercice 2 :

Expliquez, par un exemple, le fonctionnement du code assembleur suivant :

   MOV CX, 100h
   MOV BX, 0000h
   MOV SI, 200h
Etq2 : CMP [SI], 0
     JNZ Etq1
     INC BX
Etq1 : INC SI
     DEC CX
     JNZ Etq2
     MOV [400], BX
HLT

Note: ce code permet de calculer le nombre de valeurs nulles dans un tableau. Donc, l’exemple devrait être exécuté sur un tableau contenant au moins une valeur nulle. Par exemple, le tableau suivant : [1,3,0,5,0,0,6,0,9,0]. Donnez la valeur du registre BX à la fin de l’exécution pour vérifier vos résultats.

Exercice 3 :

Écrivez un code assembleur qui permet de déterminer le maximum dans un tableau d’octets mémoire de longueur 50h et débutant à l’adresse [100h], le résultat sera placé à l’adresse [500h]. Donnez un exemple d’exécution de votre code.

Exercice 4 :

Calculez la bande passante du transfert de données entre le processeur et la mémoire si nous récupérons 32 bits chaque 50 ns.