Polycopié complet des TD

publicité
Architecture des SI
[2015-2016]
TD 1 : Représentation de l’information
Les données stockées dans l’ordinateur sont toujours codées en 0 et en 1. Les données (numériques,
alphanumériques, sons, images sont placées dans la mémoire centrale et peuvent être stockées
(sauvegardées) par exemple sur des périphériques extérieurs (clé USB, disque dur, DVD) sous un
autre format. Ainsi le nombre 12 pourra être stocké sur votre disque comme deux caractères : le
code de « 1 » et le code de « 2 », mais il sera converti en un code standard pour un usage rapide
dans la mémoire de l’ordinateur. L’objectif de ce TD est de comprendre que chaque type de données
a sa méthode de codage.
Exercice 1 : Conversion de la base 10 aux bases 2 et 16
Un nombre en base 10 peut s’écrire par exemple sous la forme 345,112 . On distingue en base 10 la
partie entière, (qui correspond aux puissances supérieures à zéro de 10) et la partie fractionnaire
(qui correspond aux puissances négatives de 10). Ainsi, 345,112 3 ∗ 10
4 ∗ 10
5 ∗ 10
1 ∗ 10
1 ∗ 10
2 ∗ 10 . On constate que les « digits » correspondent aux poids de chaque
puissance de 10. Pour transformer un nombre de la base 10 vers la base 2, on commence par coder
la partie entière. Pour cela, on utilise le principe de la division entière. Ainsi, si A et B sont deux
entiers, alors A/B donne un entier Q avec un reste entier R. On divise successivement le nombre par
2 jusqu’à ce qu’il n’y ait plus que 0 dans le quotient Q. Les restes sont les bits recherchés. Le premier
reste est le bit de poids faible (le plus à droite) et le dernier reste est le bit de poids fort (le plus à
gauche). Pour coder la partie fractionnaire en base 2, on multiplie par 2. Le nombre (0 ou 1) qui
passe en partie entière est le bit de poids fort. On recommence avec ce qui reste. Par exemple, coder
0,625 en base 2 :
0,625 x 2 = 1,250 1 est le poids fort (le plus à gauche)
0,250 x 2 = 0,500 0 est le poids suivant
0,500 x 2 = 1,000 1 est le poids faible (le plus à droite)
donc 0,625 se code 0,101 en base 2
1
Architecture des SI
[2015-2016]
a) Coder 327 et 15,1 en base 2.
b) Coder 45 de la base 10 vers la base 4
Deux bases jouent, en plus du binaire, des rôles importants chez les informaticiens : la base 8 (octal)
où les chiffres possibles sont 0, 1, 2, 3, 4, 5, 6, 7 et l’hexadécimal (base 16) où les symboles sont 0, 1,
2, 3, 4, 5, 6, 7, 8, 9, A, B, C, D, E, F.
c) Que représente en base 10 le nombre 3A,7B ?
On constate que 2 = 8 et que 2 =16. Pour convertir rapidement un binaire en base 8, on fait des
paquets de 3 en commençant par la gauche de la virgule pour la partie entière et à droite de la
virgule pour la partie fractionnaire. On procède de même pour un la base 16 avec des paquets de 4.
Pour finir un paquet, on complète par des 0. Un paquet de trois bits correspond à un nombre entre 0
et 7 et un paquet de 4 bits correspond à un nombre entre 0 et 15
d) Transcrire 1001011,1101 en base 8 et 16
Exercice 2 : Addition et multiplications en binaire
Le mécanisme de l’addition en base 2 est absolument identique à l’addition en base 10. On
additionne chaque puissance de 2 identiques dans ce que l’on appelle un étage. Il est possible qu’il y
ait une retenue (qui vient de l’étage précédent c'est-à-dire de l’étage de droite). Pour un étage, le
total varie entre 00 (zéro) et 11 (trois). On pose le bit de poids faible et on retient le bit de poids fort
pour l’étage suivant.
a) Additionner 1001101 avec 11000100
b) Additionner en une seule opération 11111 + 110011 + 100011
La multiplication en binaire est très simple car la table de multiplication est très courte ! Le
mécanisme est le même qu’en décimal. Une multiplication est une suite d’additions.
c) Construire la table de multiplication
d) Multiplier 1100 par 101
Exercice 3 : Représentation des entiers
Dans tous les ordinateurs, tous les langages de programmation, les données de type entier (integer)
sont codées de la même façon. Par exemple avec 8 bits, on peut représenter 2 valeurs différentes,
soit 256 entiers.
a) Si on code un entier sur 2 octets (16 bits), quel est le nombre de possibilités ?
Les codages classiques se font sur 2, 4, 8 octets. Contrairement à un programme comme
Mathématica ou Maple, il n’y a pas d’adaptation dynamique de la taille à la valeur dans les langages
informatiques classiques (C, Visual Basic, java…).
Le signe (négatif ou positif) est porté par le bit de poids fort (bit de signe). Un nombre positif a 0
2
Architecture des SI
[2015-2016]
comme bit de signe et un nombre négatif a un bit de signe égal à 1. La valeur 0 est codée avec un 0
comme bit de signe.
b) Combien y a-t-il de nombres positifs et négatifs si on code l’entier sur N bits ?
Pour coder un nombre positif, on fait une conversion de la base 10 en base 2 et on recopie bêtement
sur 8, ou 16, ou 32 bits en complétant par des zéros les poids forts non utilisés.
c) Coder 312 sur 16 bits
Pour coder un nombre négatif, on commence par coder sa valeur absolue (positive !) sur N bits.
Ensuite, on détermine son complément à 1 en remplaçant les 1 par des 0 et des 0 par des 1. Enfin, on
ajoute arithmétiquement au résultat la valeur 1 : c’est le complément à 2. On obtient le codage du
nombre négatif.
Exemple : coder -28 sur 8 bits
+28= 00011100
Complément à 1 : 11100011
addition : 11100011+00000001 = 11100100 c’est le complément à 2 et le résultat final
d) Coder -43 sur 16 bits
Exercice 4 : Représentation des réels (norme IEEE754.2)
Les nombres réels (real, float) ont eu dans l’histoire des ordinateurs plusieurs représentations
différentes, voire d’une marque à l’autre (IBM, BULL,..). Début des années 80, une norme a été fixée.
Un nombre réel est, en base 10, défini par trois éléments : le signe, la mantisse et l’exposant. Dans
notre utilisation habituelle, on peut écrire par exemple 245.5 ou 2.455 10 ou encore 245510 . Il y
a donc plusieurs représentations externes possibles. La représentation interne est unique.
Nous prenons comme exemple la représentation la plus simple sur 32 bits.
Codons le nombre décimal −118,625 en uOlisant le mécanisme IEEE 754.
1. Premièrement, nous avons besoin du signe, de l'exposant et de la partie fractionnaire. C'est
un nombre négatif, le signe est donc "1".
2. Puis nous écrivons le nombre (sans le signe) en binaire. Nous obtenons 1110110,101.
3. Ensuite, nous décalons la virgule vers la gauche, de façon à ne laisser qu'un 1 sur sa gauche :
1110110,101 = 1,110110101 × 26. C'est un nombre flottant normalisé : la mantisse est la
partie à droite de la virgule, remplie de 0 vers la droite pour obtenir 23 bits. Cela donne 110
1101 0100 0000 0000 0000 (on omet le 1 avant la virgule, qui est implicite).
4. L'exposant est égal à 6, et nous devons le convertir en binaire et le décaler. Pour le format
32-bit IEEE 754, le décalage de 127. Donc 6 + 127 = 133 (décimal) = 1000 0101 (binaire). Le
décalage est toujours de 127 sur 32 bits.
On a donc −118,625 (décimal) = 1100 0010 1110 1101 0100 0000 0000 0000 (binaire) .
a) Représenter le réel 32,1 en format IEEE754.2
b) Comment représenter le nombre réel 0 ?
3
Architecture des SI
[2015-2016]
Exercice 5 : Autres représentations de données
Les caractères ont été représentés de façon très simple en utilisant le code ASCII sur 7 puis sur 8 bits,
ce qui a permis d’avoir 128 caractères différent puis 255 en ajoutant le 8ème bit.
La table qui suit représente la table des codes sur 7 bits. Cette table présente les LSB (Least
significant bit ou bits de poids faibles) et MSB (Most significant bit ou bits de poids fort). Les codes
de 0 à 31 sont des codes spéciaux (dits « non imprimables») et correspondent à des caractères
utilisés en télétransmission (notre ancêtre du réseau).
a) Coder « TrUc » en code ASCII 7 bits
Il existe maintenant l’UNICODE qui permet de coder n’importe quel système d’écriture (chinois,
arabe, grec, indien,…) et n’importe quel symboles (mathématiques, musique…). Il s’agit d’un codage
dont la dernière mise à jour a été faite en janvier 2012. Cela vous permet d’envoyer en chinois et de
recevoir un courrier en chinois. Ce n’était pas le cas dans les années 90 !
b) Si vous avez du courage, faites un tour sur Wikipédia : ce n’est pas simple du tout !
Les images sont des tableaux de points colorés appelés « Pixels ». Très classiquement, un pixel est
représenté sur 24 bits : 8 bits pour le rouge, 8 bits pour le vert et 8 bits pour le bleu.
c) Donner le nombre d’octets d’une image de 1024 x1024 pixels
d) Transformer cette valeur en KO (1024 octets), en MO (1024 KO)
e) Comment coder le blanc et le noir ?
4
Architecture des SI
[2015-2016]
TD2 : L’ordinateur, une machine logique
L’objectif de ce TD est d’acquérir une bonne mécanique de calcul algébrique en logique Booléenne.
L’utilisation de « + » pour le OU logique et de « . » pour le ET logique en France induit
malheureusement un « plaquage » de l’algèbre des nombres que vous connaissez. Il faut considérer
que cette algèbre est complètement différente. L’ordinateur est une machine Booléenne où seuls
deux états sont utilisés pour manipuler programmes et données.
Exercice 1 : Simplification de fonctions logiques
Quelques particularités de l’algèbre ne doivent pas être oubliées : A = A+A : Cela permet de
reprendre plusieurs fois un terme qui se simplifie avec d’autres termes.
A.(B+C)=A.B + A.C et A + B.C=(A+B).(A+C) : distributivité de « + » par rapport à « . » et de « . » par
rapport à « + »
A+ Ā.B=A+B : une propriété souvent oubliée.
Développer et simplifier les équations suivantes :
a) A.B.C A.B. C D D. A B
b) A B C . A BC D
c) A. B C A . B A.C
d) A.B.C A.B.C A.B C.A.B
Exercice 2: Table de vérité
La table de vérité d’une fonction à plusieurs variables permet d’écrire explicitement (toutes les
combinaisons possibles des entrées) les valeurs des sorties de la fonction. On présente la table de
vérité en codant les entrées en binaire naturel.
a) Combien de lignes comporte la table de vérité d’une fonction de n variables ?
b) Ecrire cette table de vérité avec la fonction f A,B,C,D A.B B.C D.A
c) Soit la table de vérité ci-dessous, écrire F(A,B,C) et faites la simplification de F si cela est
possible.
Table
A
B
C
F
0
0
0
0
0
0
1
1
0
1
0
0
0
1
1
1
1
0
0
0
1
0
1
1
1
1
0
0
1
1
1
1
1
Architecture des SI
[2015-2016]
Exercice 3 : Complémentations par les lois de De Morgan
La complémentation consiste à déterminer F connaissant F. On utilise pour cela les lois de
De Morgan vues en cours. Néanmoins, on peut le faire sans réfléchir et de façon complètement
mécanique :
-
Remplacer « + » par « . »
Remplacer « . » par « + »
Remplacer A par Ā et de même pour les autres variables
Remplacer Ā par A et de même pour les autres variables
Attention aux parenthèses ! le complément de A.B donne A B et celui de (A+B) donne A.B
Exemple : si F A.B B. C D.A alors F
A B . B C. D A
a) Donner le complément de F A.B.C A.B.C A.B. C D
b) Donner le complément de F A B C . D A C
c) A partir de la table de vérité précédente (exercice n°2 c), écrire F en produits de sommes et
en sommes de produits.
Exercice 4 : formes de représentation d’une fonction logique
Une fonction logique est sous forme canonique si chaque terme (monôme ou monal) contient toutes
les variables, complémentées ou non. C’est aussi une forme technologique.
Forme normale disjonctive (1ère forme canonique) :
Somme de produits (monômes) canoniques (intersection de base ou min terme).
Exemple : F x,y,z x.y.z x.y.z x.y.z
Forme normale conjonctive (2ème forme canonique) :
Produit de sommes (monaux) canoniques (réunion de base ou max terme).
Exemple : F x,y,z
x y z . x y z . x y z
a) Ecrire la forme normale conjonctive de f(A,B,C)
b) Ecrire la forme normale disjonctive de f(A,B,C)
Une dernière image d’un composant pneumatique de chez CROUZET :
2
Architecture des SI
[2015-2016]
TD 3 : L’ordinateur personnel – Le comprendre –
L’objectif de cette séance de TD est de comprendre les offres commerciales de deux types de
machines de traitement de l’information : un ordinateur portable de très bonne qualité et une
tablette tactile. Nous présentons tout d’abord les deux éléments issus simplement du site de la
FNAC. Il s’agira à partir des informations collectées sur Internet ou dans votre cours de répondre très
simplement aux questions posées. A chaque question, quelques lignes sont attendues : il est inutile
de « copier-coller » des choses que vous ne comprenez pas car elles sont trop techniques!
Première machine : un ordinateur portable
Toshiba Satellite P875-301 17.3" LED Blu-Ray - Champagne
Type de boîtier
Portable - Notebook
Poids en kg
3 Kg
Ecran
17,3 "
Processeur
Intel Core i7-3610QM*
Fréquence du processeur / Fréquence de Bus
2.30 GHz, jusqu'à 3.33 GHz en Turbo
Chipset
Intel HM76
RAM installée
12 Go
Type de mémoire vive installée
DDR3
Disque dur
1,5 To
Type de disque dur
SATA
Vitesse de rotation du disque dur
5400 tours/min
Lecteur / Graveur
Lecteur Blu-Ray DVD double couche biformat
Lecteur de cartes mémoire
2 en 1 : SD/SC-HC/SDXC/MMC
Carte graphique
Nvidia GeForce GT 630M
Mémoire vidéo dédiée
2048 Mo
Résolution écran
HD LED Backlight
Résolution maxi avec mémoire installée
1600 x 900
Webcam intégrée
Oui
Résolution de la webcam
1 Mpixel
Bluetooth
oui
Carte son
Contrôleur son Intel HD Sound, SRS Premium Sound 3D
Nombre de haut-parleurs intégrés
4
Microphone intégré
Oui
Carte réseau Ethernet
10/100/1000 Mbps
Communication sans fil
802.11 b/g/n Intel WIDI 3.0 + Bluetooth 4.0
Connecteurs
4 USB 3.0 (dont 2 Sleep 'N Charge), 1 HDMI-CEC, 1 VGA, entrée et sortie audio
Dispositif de pointage
TouchPad Multi-touch
Pavé numérique
Oui
Type de batterie / autonomie
6 cellules
Système d'exploitation et Logiciels fournis
Windows 7 Edition Premium 64 bit**
Caractéristiques complémentaires
Haut-parleurs Harman Kardon, clavier chiclet noir, protection disque dur 3D Sensor,
technologie Sleep 'N Music et Resolution +
Dimensions (l x p x h) en mm
418 x 272 x 34
1
Architecture des SI
[2015-2016]
Deuxième machine : Une tablette Tactile
Acer Iconia tab A700 10,1" 32 Go - Argent
Type de boîtier
Tablette Tactile
Poids en kg
0,68 Kg
Ecran
10,1 "
Processeur
NVIDIA Tegra 3 Quad-Core
Fréquence du processeur / Fréquence de Bus
1.3 GHz
RAM installée
1 Go
Type de mémoire vive installée
DDR2
Disque dur
32 Go
Type de disque dur
Mémoire Flash
Lecteur de cartes mémoire
SD jusqu'à 32 Go
Résolution écran
Ecran tactile
Résolution maxi avec mémoire installée
1920 x 1200
Webcam intégrée
Oui
Résolution de la webcam
5 Mpixel à l'arrière, HD à l'avant
Bluetooth
oui
Carte son
Dolby Mobile 3+
Nombre de haut-parleurs intégrés
2
Microphone intégré
Oui
Communication sans fil
802.11 b/g/n + Bluetooth 2.1 + EDR
Connecteurs
1 micro-USB 2.0, 1 HDMI
Type de batterie / autonomie
Lithium-Polymère 36.26 W 9800 mAh, jusqu'à 10h30 d'autonomie en lecture vidéo
Système d'exploitation et Logiciels fournis
Android 4.0 Ice Cream Sandwich **
Caractéristiques complémentaires
Accéléromètre, gyroscope, capteur de luminosité, boussole, GPS
Dimensions (l x p x h) en mm
260 x 175 x 11
2
Architecture des SI
[2015-2016]
Nous allons reprendre les éléments en considérant les principales fonctions d’un ordinateur.
1) Les processeurs
a) Le processeur de l’ordinateur portable est-il un monoprocesseur ? multiprocesseurs ?
b) Quelle est l’importance de la vitesse de l’horloge ? Qu’est ce que le « Turbo » ? Quels
sont les inconvénients d’une horloge extrêmement rapide ?
c) Les processeurs possèdent-ils une mémoire intégrée ? Quel est le nom de cette mémoire
et quelle en sont les fonctions ?
d) Quelle est la particularité du processeur de la tablette ?
e) Pourquoi la batterie a une telle importance dans la description ?
2) La fonction mémoire
a) Notez la grande différence entre les deux machines. Recherchez sur Wikipedia les
technologies DDR. Quel est l’importance d’une mémoire à accès très rapide ? Quelles
sont les contraintes techniques associées ?
b) Après le Kilooctet, le Mégaoctet, le Gigaoctet, le Teraoctet, le Gio symbole d'unité du
Gibioctet vaut 1 073 741 824 (2 puissance 30) octets. La bande passante théorique du
DDR2 étant de 1,6 Gio/s, quel est donc le temps (minimum) en nanosecondes de
transfert d’un octet de la mémoire vers le processeur ?
3) Le stockage des données et programmes
a) L’ordinateur portable possède un « disque dur » de 1,5 TéraOctets (en 1984 :
10MégaOctets pour le PC XT). Quels sont les qualités importantes pour le choix d’un
disque dur ? N’hésitez pas à lire chez vous l’excellente et accessible présentation des
disques durs sur Wikipédia : http://fr.wikipedia.org/wiki/Disque_dur
b) L’écran tactile ne possède pas de disque dur. Quel type de mémoire utilise-t-il ? dans
quels dispositifs retrouve-t-on ce type de mémoire ? Ce type de support est-il amené à
remplacer les disques magnétiques ?
4) La gestion des périphériques
a) L’ordinateur portable possède un « chipset » : A quoi sert ce composant ?
b) Quelle est le mode de connexion le plus fréquent pour connecter des périphériques
locaux (hors écran)?
c) Quels sont les modes de connexion avec le réseau internet ? Quel est logiquement le plus
rapide ? Quels sont les différences entre les deux machines ?
d) Que signifie un écran 17,3 " ou 10,1 " ?
e) Que signifie Bluetooth ? Que fait-on avec cela ?
3
Architecture des SI
[2015-2016]
5) Dernières questions
a) La tablette tactile possède un certain nombre de capteurs. A quoi servent-ils ?
b) Les systèmes d’exploitation sont différents. Pourquoi cette différence ?
4
Architecture des SI
[2015-2016]
TD4 : Configuration réseau
A/ Etude préalable
Un administrateur réseau a, à sa disposition, le réseau IP 195.220.74.0/23 et il a décidé de le
découper en 8 morceaux de même taille.
•
Vérifiez que 195.220.74.0 est bien l’adresse d’un réseau de préfixe 23.
•
Expliquez pourquoi c’est faisable de découper un préfixe 23 en 8 morceaux ?
•
Quel est le nouveau préfixe pour chaque morceau ainsi obtenu ?
•
Combien d’adresses utilisables y aurait-il dans chaque morceau ?
•
Quelles sont les netmask de chaque morceau ?
•
Quelles sont les adresses de réseau de chacun des 5 premiers morceaux ?
•
Quelles sont les adresses broadcast de chacun des 5 premiers morceaux ?
•
Pour chaque morceau déterminez la première adresse utilisable, la seconde, l’avant dernière
et la dernière.
B/ Mise en place dans un exemple
La figure ci-dessous montre les 5 réseaux locaux (LAN) auxquels l’administrateur a décidé de
dispatcher les 5 premiers morceaux.
L’infrastructure de commutation de chaque réseau local est constitué d’un commutateur « 296024TT » de chez CISCO reliant les différents équipements terminaux (Serveur, PC ou portable). Une
infrastructure de routage constituée de 5 routeurs « 2911 » de chez CISCO assure l’interconnexion
des réseaux locaux.
1
Architecture des SI
[2015-2016]
Au niveau du plan d’adressage, le LAN n°1 a obtenu le premier des 8 morceaux du réseau IP
195.220.74.0/23 ; le LAN n°2 a obtenu le second ; le LAN n°3, le troisième et ainsi de suite.
La dernière adresse disponible de chaque morceau a été affectée à sa passerelle par défaut.
Sur le LAN n°1 et le LAN n°3, la configuration de tous les équipements se fait via des adresses IP fixes.
Sur le LAN n°2 et le LAN n°4, un serveur DHCP, utilisant l’avant dernière adresse disponible, a été
installé afin de fournir dynamiquement la configuration IP aux autres équipements terminaux.
C/ Configuration sous packet-tracer
1. Relevez l’adresse IP de PC-L1-P1. (Remarque : un seul serveur DNS est présent sur le LAN n°5
et son adresse IP sera utilisée dans la configuration de tous les équipements.)
2. Passez en DHCP l’adresse IP de PC-L2-P1 et PC-L2-P2 puis relevez la configuration IP que ces
machines obtiennent.
3. Configurez en IP fixe PC-L3-P1. (Pour cet équipement, il a été décidé de lui affecter la
première adresse disponible du LAN n°3.)
4. Configurez en IP fixe SRV-L4 sachant que l’avant dernière adresse du LAN n°4 lui a été
réservée. Configurez le logiciel serveur DHCP sur SRV-L4 afin de donner dynamiquement des
configurations IP aux autres équipements terminaux du LAN n°4.
5. Passez en DHCP l’adresse IP de PC-L4-P1 puis relevez la configuration IP obtenue. Si
nécessaire corrigez l’étape 4.
D/ Simuler sous packet-tracer
1. Depuis PC-L1-P1, grâce au "Command Prompt", et à la commande "ping", vérifiez que la
communication, entre le PC et sa passerelle par défaut, se passe bien.
2. Depuis PC-L2-P2, grâce à la commande "tracert", vérifiez que la communication se fait
directement, sans intermédiaire de niveau 3, avec l’autre machine du LAN : PC-L2-P1.
3. Depuis PC-L2-P2, vérifiez que la passerelle par défaut est bien le premier intermédiaire de
niveau 3 quand on communique avec SRV-DNS.
4. Depuis PC-L3-P1, vérifiez, grâce à la commande "ping", que vous pouvez communiquer avec
le serveur DNS. Le nom DNS de "SRV-DNS" étant "srv-dns.td4.hei.fr", vérifiez que la
résolution de nom se déroule correctement.
5. Depuis PC-L4-P1, utilisez la commande "ftp" pour déposer le fichier local "sampleFile.txt" sur
"srv-dns.td4.hei.fr". (Login "cisco" et mot de passe "cisco") La commande "dir" de ftp
permettra de vérifier que "sampleFile.txt" a bien été ajouté à la liste des fichiers du serveur.
6. Depuis PC-L4-P1, vérifiez avec le navigateur web que l’on peut accéder aux pages web
stockées sur "srv-dns.td4.hei.fr".
E/ Exercice Complémentaire pour Adresse IPv6
Depuis votre machine réelle, via un navigateur connectez-vous à l’URL :
http://netacad/ccna_RS/ccna1_fr/course/module8/8.2.2.5/8.2.2.5.html
Et pour chacune des 10 adresses IPv6 proposée sous forme privilégié, procédez à l’écriture sous le
format compressé.
2
Architecture des SI
[2015-2016]
TD 5 : Un langage d’assemblage – Un peu de programmation –
L’objectif de ce TD est de vous initier à la programmation en langage Assembleur. Chaque
microprocesseur a son jeu d’instructions, ses propres registres et donc sa propre syntaxe
d’assembleur. Nous allons travailler sur l’assembleur des séries Intel 8088 et 8086 qui équipèrent les
premiers IBM PC en 1982. Compte tenu de l’extraordinaire complexité des multiprocesseurs actuels
(une centaine d’heure d’étude serait insuffisant), cela vous permettra de saisir le mécanisme de
programmation très simplement.
Exercice 1 : La mémoire centrale
Le processeur travaille sur une mémoire centrale dont chaque octet est adressable. Le bus d’adresse
est un bus de 16 bits, soit 2 octets. On notera en hexadécimal les adresses des octets. Ne pas
confondre l’adresse et le contenu !
a) Quelle est la taille maximale de la mémoire centrale ?
b) Combien y-a-t-il d’octets entre les adresses FE1A et DA01 ?
Exercice 2 : les registres de base AX, BX et IP
Nous allons utiliser seulement ces registres qui, on le rappelle, sont des mémoires internes au
microprocesseur. Le registre AX est un registre 16 bits et constitue notre accumulateur. Le registre
BX est un registre auxiliaire de 2 octets également. Le registre IP est le pointeur de programme ou
compteur ordinal : il contient l’adresse de l’instruction à exécuter. Par exemple si IP contient 1A2B,
alors l’instruction qu’il exécutera sera l’instruction présente à partir de l’adresse 1A2B. Une
instruction peut tenir sur plusieurs octets.
L'instruction MOV permet d'effectuer les transferts de données dans les deux sens. Ainsi, en
notation symbolique on note la destination en premier puis la source, ce qui donne :
MOV destination, source
Mon premier programme :
MOV BX,12F8 va mettre dans le registre BX la valeur 12F8 (adressage immédiat)
MOV AX, [1A2B] va copier le contenu de l'adresse 1A2B dans le registre AX (adressage direct)
MOV [1A2D], BX va copier le contenu du registre BX à l'adresse 1A2D (adressage direct)
a) Sachant que dans la mémoire aux adresses 1A2B et 1A2C, il y a 3E et 00, que contiendront les
registres et les quatre emplacements mémoire après l’exécution du programme précédent ?
b) Ecrire un programme simple qui permute les contenus des deux mots de 16 bits qui
commencent à 1A2B et 1A2D.
1
Architecture des SI
[2015-2016]
Exercice 3 : les instructions arithmétiques
L’unité arithmétique et logique (UAL) est la partie du processeur chargée de faire les opérations
arithmétiques (+,-,*,/),logiques (ET,OU,NON) et de comparaison (>,<,=…). L’UAL retourne un
résultat qui peut être exploité par le programme. L’UAL manipule un registre particulier qui est le
registre d’état.
L’addition est ADD destination, source qui additionne la destination avec la source et met le
résultat dans la destination.
La soustraction est SUB destination, source. Le résultat est toujours mis dans la destination.
La seule restriction pour ces deux instructions est qu’il doit y avoir un registre dans la source ou
dans la destination. Ainsi ADD [1A00], [2BA3] est interdit mais ADD AX, BX est autorisé.
La multiplication est MUL source qui multiplie le registre AX par la source et met le résultat dans
AX (je simplifie un peu !).
On considère le programme suivant :
MOV AX,[2A3C]
MUL [2A3E]
ADD AX,[2A40]
MOV [2A42],AX
a) Que fait ce programme ?
b) Voici le contenu des mémoires avant l’exécution, à partir de la mémoire d’adresse 2A3C
(en Hexa) :
0002000A0005A984
Donner le contenu de la mémoire après l’exécution du programme.
c) Sur le même modèle construire un programme qui calcule
à partir
des données a ,b ,c mises en mémoire à partir de l’adresse 2A3C
Pour conclure sur ce TD, il y aurait encore beaucoup d’instructions à examiner permettant de réaliser
les structures de programmation qui seront présentées dans les cours suivants : la structure
alternative qui permet d’exécuter telle ou telle série d’instructions en fonction du résultat d’un test
et les structures itératives qui permettent de faire des boucles. Dès que le programme a atteint une
certaine complexité, il est préférable d’utiliser des langages évolués qui ont l’intérêt d’être
relativement indépendants du processeur.
2
Téléchargement