Chaque ordinateur personnel possède un microprocesseur qui gère les paramètres arithmétiques, logiques et les activités de contrôle. Chaque famille de processeurs possède son propre ensemble d'instructions pour gérer diverses opérations telles que l'obtention d'entrées depuis clavier, afficher des informations à l'écran et effectuer diverses autres tâches. Cet ensemble d'instructions est appelé « enseignement du langage machine ». Le processeur ne comprend que les instructions en langage machine qui sont des chaînes de 1 et de 0. Cependant la machine le langage est trop obscur et complexe pour être utilisé dans le développement de logiciels. Le langage assembleur de bas niveau est donc conçu pour une famille spécifique de processeurs qui représente diverses instructions en code symbolique et un plus forme compréhensible. CISC et RISC Le processeur Intel 8086 était le premier d'une gamme de processeurs utilisant un jeu d'instructions complexe. Conception informatique (CISC). Le jeu d'instructions est vaste et comprend une grande variété de mémoires. adressage, décalage, arithmétique, mouvement de données et opérations logiques. Enseignement complexe les ensembles permettent aux programmes compilés de contenir un nombre relativement petit d'instructions. Une disL'avantage de la conception CISC est que les instructions complexes nécessitent un temps de décodage relativement long. et exécuter. Un interpréteur à l'intérieur du processeur écrit dans un langage appelé microcode décode et exécute chaque instruction machine. Une fois qu'Intel a sorti le 8086, il est devenu nécessaire pour tous les sousles processeurs Intel ultérieurs seront rétrocompatibles avec le premier. Une approche complètement différente de la conception des microprocesseurs est appelée instruction réduite. Définir (RISC). Un RISC est constitué d'un nombre relativement restreint d'instructions courtes et simples qui exécutent relativement rapidement. Plutôt que d'utiliser un interpréteur de microcode pour décoder et exécuter les instructions de la machine, tion, un processeur RISC décode et exécute directement les instructions à l’aide du matériel. Grande vitesse les postes de travail d'ingénierie et de graphisme sont construits à l'aide de processeurs RISC depuis de nombreuses années. En raison de l'énorme popularité des ordinateurs compatibles IBM-PC, Intel a pu réduire le prix de ses processeurs et dominer le marché des microprocesseurs. Dans le même temps, Intel a reconnu de nombreux avantages à l'approche RISC et a trouvé un moyen d'utiliser des fonctionnalités de type RISC, telles que la surexécution par rodage dans la série Pentium. L'instruction x86 -Les registres du 8086/8088 : -Introduction : Le jeu de registres contient l'ensemble des registres du microprocesseur. Un registre est une petite partie de mémoire intégrée au microprocesseur, dans le but de recevoir des informations spécifiques, notamment des adresses et des données stockées durant l'exécution d'un programme. Il existe plusieurs types de registres. Certains d'entre eux sont affectés à des opérations d'ordre général et sont accessibles au programmeur à tout moment. Nous disons alors qu'il s'agit de registres généraux. D'autres registres ont des rôles bien plus spécifiques et ne peuvent pas servir à un usage non spécialisé. - Les registres généraux : Les registres généraux peuvent être utilisés dans toutes les opérations arithmétiques et logiques que le programmeur insère dans le code assembleur. Un registre complet présente une grandeur de 16 bits. Comme le montre la figure 2, chaque registre est en réalité divisé en deux registres distincts de 8 bits. De cette façon, nous pouvons utiliser une partie du registre si nous désirons y stocker une valeur n'excédant pas 8 bits. Si, au contraire, la valeur que nous désirons y ranger excède 8 bits, nous utiliserons le registre complet, c'est à dire 16 bits. Nous verrons plus loin qu'il est possible de manipuler facilement les registres généraux. Le programmeur dispose de 8 registres internes de 16 bits qu'on peut diviser en deux groupes comme le montre la figure 2 : - groupe de données : formé par 4 registres de 16 bits (AX,BX,CX,et DX) chaque registre peut être divisé en deux registres de 8 bits (AH,AL,BH,BL,CH,CL,DH et DL ) Gestion de la mémoire x86 Les processeurs x86 gèrent la mémoire selon les modes de fonctionnement de base décrits dans Section 2.2.1. Le mode protégé est le plus robuste et le plus puissant, mais il restreint les applications. les programmes d’accéder directement au matériel du système. En mode adresse réelle, seul 1 Mo de mémoire peut être adressé, à partir de l'hexadécimal 00000. à FFFFF. Le processeur ne peut exécuter qu'un seul programme à la fois, mais il peut interrompre momentanément ce programme pour traiter les requêtes (appelées interruptions) des périphériques. Les programmes d'application sont autorisé à accéder à n’importe quel emplacement de mémoire, y compris les adresses directement liées au système matériel. Le système d'exploitation MS-DOS fonctionne en mode adresse réelle et Windows 95 et 98 peut être démarré dans ce mode. ce programme pour traiter les demandes (appelées interruptions) des périphériques. Les programmes d'application sont autorisé à accéder à n’importe quel emplacement de mémoire, y compris les adresses directement liées au système matériel. Le système d'exploitation MS-DOS fonctionne en mode adresse réelle et Windows 95 et 98 peut être démarré dans ce mode. En mode protégé, le processeur peut exécuter plusieurs programmes en même temps. Il attribue à chacun traiter (programme en cours d’exécution) un total de 4 Go de mémoire. Chaque programme peut se voir attribuer son propre zone de mémoire réservée, et les programmes sont empêchés d'accéder accidentellement les uns aux autres code et données. MS-Windows et Linux fonctionnent en mode protégé. En mode virtuel-8086, l'ordinateur fonctionne enfonctionne en mode adresse réelle et Windows 95 et 98 peut être démarré dans ce mode. En mode protégé, le processeur peut exécuter plusieurs programmes en même temps. Il attribue à chacun traiter (programme en cours d’exécution) un total de 4 Go de mémoire. Chaque programme peut se voir attribuer son propre zone de mémoire réservée, et les programmes sont empêchés d'accéder accidentellement les uns aux autres code et données. MS-Windows et Linux fonctionnent en mode protégé. En mode virtuel-8086, l'ordinateur fonctionne en mode protégé et crée un 8086 virtuel machine avec son propre espace d'adressage de 1 Mo qui simule un ordinateur 80x86 fonctionnant en mode réel. mode d’adressage. Windows NT et 2000, par exemple, créent une machine virtuelle 8086 lorsque vous ouvrez une fenêtre de commande. Vous pouvez exécuter plusieurs de ces fenêtres en même temps, et chacune est proprotégé des actions des autres. Certains programmes MS-DOS faisant directement référence à le matériel informatique ne fonctionnera pas dans ce mode sous Windows NT, 2000 et XP. Dans les sections 2.3.1 et 2.3.2, nous expliquerons les détails du mode adresse réelle et du mode protégé. mode. -Interruption matérielle et logicielle : - Interruption Matériel : - Introduction Une interruption est signalée au processeur par un signal électrique sur une borne spéciale. Lors de la réception de ce signal, le processeur (traite) l'interruption dès la fin de l'instruction qu'il était en train d'exécuter. Le traitement de l'interruption consiste soit : - à l'ignorer et passer normalement à l'instruction suivante : c'est possible uniquement pour certaines interruptions, nommées interruptions masquables. Il est en effet parfois nécessaire de pouvoir ignorer les interruptions pendant un certains temps, pour effectuer des traitements très urgents par exemple. Lorsque le traitement est terminé, le processeur démasque les interruptions et les prend alors en compte. à exécuter un traitant d'interruption (interrupt handler). Un traitant d'interruption est un programme qui est appelé automatiquement lorsqu'une interruption survient. L'adresse de début du traitant est donnée par la table des vecteurs d'interruptions (voir paragraphe suivant ) . Lorsque le (programme d'interruption) traitant a effectué son travail, il exécute l'instruction spéciale IRET qui permet de reprendre l'exécution à l'endroit où elle avait été interrompue. - Cas du processeur 8086 : Le microprocesseur 8086 possède d'interruption : INTR, NMI, et RESET trois lignes principales Les interruptions logicielles sont semblables aux interruptions matérielles. L'unique différence réside dans le fait que les interruptions logicielles sont émises par des programmes. Les cinq premières interruptions sont définies par Intel. Les autres interruptions sont définies par le DOS et le BIOS. Ces interruptions ont une fonction définie, par exemple la lecture et l'écriture sur le disque, l'écriture des données à l'écran, etc. Contrairement à l'entrée INTR du microprocesseur, l'interruption logicielle ne peut être ni invalidé ni masquée.