SDN2 TD1
SDN2 TD1
SDN2 TD1
EEEA
TD n°1
Exercice 1 : rappels sur le codage de l’information
1) Convertir en décimal les nombres suivants exprimés en binaire naturel :
4) Écrire les nombres hexadécimaux suivants sous forme binaire et préciser sur combien d’octets ils sont
représentés :
On considère une machine numérique travaillant sur des mots binaires de 8 bits et comportant une UAL (Unité
Arithmétique et Logique) de 8 bits.
1) Donnez la représentation binaire des nombres décimaux signés suivants selon cette machine :
2) Donnez le résultat en binaire, et son interprétation signée, de l’addition des nombres décimaux signés suivants
et donnez la valeur des bits de retenue (bit C = Cn⊕C0, avec respectivement Cn et C0 la retenue sortante du
dernier étage de l’UAL et la retenue entrante du premier étage) et de débordement (bit V = Cn⊕Cn-1, avec Cn
et Cn-1 la retenue sortante des deux derniers étages de l’UAL) du registre d’état de l’UAL :
● Quels sont les éléments constituants l’unité centrale de traitement d’un ordinateur ?
● Donnez le schéma général d’une architecture de Von Neumann. En quoi cette architecture diffère-t-elle de
celle de Harvard ?
● Dans l’architecture d’un ordinateur, qu’est-ce qu’un bus, et à quoi cela sert-il ? Quels sont les différents
types de bus dans l’architecture d’un ordinateur ?
● Soit les catégories de mémoire suivantes : Ordonnez les types de mémoire suivants en fonction de leur
rapidité d’accès par l’unité centrale de traitement, du plus rapide au moins rapide : mémoire centrale,
registres, mémoire de masse, mémoire cache. Parmi ces mémoires, lesquelles sont volatiles ?
● Quelle est la capacité de stockage d’une cellule mémoire ? Combien d’états différents peut prendre une
cellule mémoire ? Quels sont ces différents états en binaire, en hexadécimal ? Qu’est-ce que l’adresse d’une
cellule mémoire ?
Exercice 4 : définitions
Associez chaque mot de la liste suivante avec une des définitions proposées ci-après :
1) La valeur hexadécimale 0x30A79847 est stockée dans la mémoire centrale d’un ordinateur à l’adresse 2009h,
et la valeur 0xCAFE à l’adresse 200Dh. Quelle est la valeur stockée dans la mémoire à l’adresse 200Bh si le
mode de stockage est le système big-endian ? Si le mode de stockage est le système little-endian ?
Addr___:__0__1__2__3__4__5__6__7__8__9__A__B__C__D__E__F
0x9EE0 : 96 7B 5C 43 87 66 FB 57 44 05 D3 53 02 E8 38 45
0x9EF0 : 0A 97 0C 7D AC 9A 76 4C B7 88 8D F6 D3 24 59 6A
0x9F00 : 9F B6 AD 27 1D A8 7F 61 AD 52 B5 B0 3A ED F5 44
0x9F10 : 85 01 C2 31 9B 39 7D 53 C1 0A 49 94 2F A3 FE CF
0x9F20 : 5A AC F6 77 55 75 D8 02 C8 8D B2 02 7B A8 47 00
a. A quelle adresse débute cet extrait de la mémoire ? A quelle adresse se termine-t-il ? Quelle est la taille
en octets de cet extrait de mémoire ?
b. Représentez l’extrait de de cette mémoire allant des adresses 0x9F0C à 0x9F13 sous la forme d’un
tableau à une dimension. En supposant que les données contenues dans cet extrait constituent un tableau
de nombres entiers non signés codés sur 16 bits, donnez le contenu en décimal de ce tableau selon que
les données sont rangées selon la convention big-endian ou little-endian.
c. Si on considère que l’extrait de mémoire ci-dessus peut être adressé en utilisant le mode big-endian ou
little-endian et peut être adressée en mode 8, 16 ou 32 bits, donnez les informations manquantes :
● adresse 0x9F14 en mode big-endian, au format _____ bits par mot => 0x9B
● adresse 0x9F17 en mode little-endian, au format _____ bits par mot => 0xC153
● adresse 0x9F1F en mode little-endian, au format 16 bits par mot => _____
● adresse 0x9F2E en mode _____, au format 16 bits par mot => 0x0047
● adresse 0x9F0E en mode big-endian, au format 16 bits par mot => _____
● adresse 0x9F0C en mode _____ , au format 32 bits par mot => 0x44F5ED3A
● adresse 0x9F0E en mode little-endian, au format 32 bits par mot => _____
● adresse 0x9EF6 en mode _____, au format _____ bits par mot => 0x764C
● adresse 0x9EED en mode _____, au format _____ bits par mot => 0x0A4538E8
1) Écrivez un programme assembleur 8086 en respectant la syntaxe supportée par Turbo Assembler (TASM)
permettant d’additionner les deux valeurs constantes (exprimées ici en hexadécimal) 27h et 21h et de stocker
le résultat dans le registre accumulateur AL du microprocesseur. Le programme se terminera par un appel à
l’instruction int 21h qui permettra de mettre fin “proprement” au programme.
Quelle instruction utilise-t-on pour l’addition ? Quel est le résultat de l’addition ? Quelles sont les valeurs
des bits C (retenue) et V (débordement) du registre d’état de l’UAL ?
On remplace maintenant dans le programme précédent la valeur constante 27h par e9h. Quel résultat obtient-
on ? Quelles sont les valeurs des bits C et V ? Que s’est-il passé ?
2) Écrivez maintenant un programme permettant de faire la soustraction, dans le registre AL, de la valeur 27h
par la valeur constante 21h. Quelle instruction utilise-t-on pour la soustraction ? Quel est le résultat de cette
soustraction ? Quelles sont les valeurs des bits C (retenue) et V (débordement) du registre d’état de l’UAL ?
On remplace maintenant dans le programme précédent la valeur constante 27h par e9h. Quel résultat obtient-
on ? Quelles sont les valeurs des bits C et V ? Expliquez pourquoi on obtient ces valeurs.