Etienne Tremblay
Ordinateurs, Structure et Applications
GIF-1001
Cours 6, le 8086
GIF-1001
Introduction
• Un objectif du cours d’OSA est d’apprendre la programmation en assembleur.
• De nos jours, il est très très rare de programmer en assembleur: très peu de personnes programment en assembleur et ceux qui le font, le font
habituellement très peu souvent. Cependant, il est important de bien comprendre les instructions et l’exécution d’instructions afin de bien
comprendre comment fonctionne un ordinateur. Comme les instructions sont intimement reliées au code assembleur, le langage assembleur est présenté dans le cours d’OSA.
• Un pré requis quasi-incontournable de la programmation en assembleur est de bien connaître le microprocesseur qui exécutera le programme. Le
langage assembleur est très près du langage machine.
• Pour cette raison et pour faire un lien avec le cours précédent sur
l’architecture des microprocesseurs, le 8086 sera présenté brièvement en classe.
Le 8086
(1)
GIF-1001
Le 8086 (2)
• Le 8086 a des registres de 16 bits et peut adresser 1Mo de mémoire (20 bits d’adresse). La mémoire est externe au CPU.
• Le 8086 gère 4 segments de 64Ko.
• Le 8086 a une architecture CISC. Chaque instruction du 8086 a une longueur qui lui est propre.
• L’horloge du 8086 peut être 5, 8 ou 10MHz. Un cycle du CPU vaut 6 coups d’horloge. Une instruction de CPU peut habituellement être exécutée par cycle (En fonction de l’instruction).
• Le 8086 a 40broches. 20 broches servent de bus d’adresses et 16 broches servent de bus de données. Afin de minimiser le nombre de broches, les 16 broches de données sont aussi des lignes d’adresse. Lors d’une opération d’écriture ou de le lecture de la mémoire, les 16 broches communes
(adresses et données) sont tour à tour des adresses, puis des données. Les autres broches du 8086 servent au contrôle des bus (Interruptions, Read, Write, I/Os versus mémoire, etc.) ou à l’opération du 8086 (alimentation, horloge, reset).
• Le 8086 est divisé en plusieurs bloc fonctionnels qu’on retrouve dans un CPU moderne: le Bus Interface Unit, des registres (il n’a pas de registres pour les fractions), un ALU, un buffer de 6byte pour 1 instruction et une unité de contrôle et d’exécution des instructions.
Le 8086 (3)
Tiré de: i8086_microprocessor.pdfGIF-1001
Le 8086 (4)
• Le 8086 a deux modes d’opérations déterminés par le voltage présent à la broche MN/MX*: minimum et
maximum. Ces modes déterminent la fonction de
plusieurs broches du 8086. Le contenu de cette page et de la page précédente est propre au mode minimum.
• Pour aller lire ou écrire la mémoire, le CPU:
– Met une adresse valide sur le bus d’adresse
– Active la ligne ALE pour dire que l’adresse est valide
– Change le rôle des lignes d’adresse pour leur donner le rôle de lignes de données (Désactiver ALE, rendre le bus de données flottant en lecture, mettre DEN* LOW)
– Met les données sur le bus de donnée pour l’écriture.
– Active les lignes de lecture ou d’écriture.
– Lit les données au besoin.
– Change le rôle des lignes de données pour leur donner le rôle de
lignes d’adresse.
Références et exercices
• Références
– architecture du pc.doc
– Datasheet du 8086 (i8086_microprocessor.pdf)
– Intel Architecture, Software Developer’s Manual (pentiumIII.pdf) – Architecture du Pentium 4.doc
– Lien sur une comparaison du Pentium IV et de l’Athlon avec de belles images d’architecture: http://www.tt-
hardware.com/modules.php?name=News&file=article&sid=5424
• Exercices
– Historique: lire la section 2.1 de pentiumIII.pdf
– Lire Architecture du Pentium 4 ou le lien ci-haut (en français!) ou le reste du chapitre 2 de pentiumIII.pdf (recommandé, mais plus
complexe).