Le code opération Le code opérande Université Ferhat Abbas De Sétif Faculté de
Le code opération Le code opérande Université Ferhat Abbas De Sétif Faculté de Technologie Département d’électrotechnique Option : License Automatique Module : LAT 54 2020 Chapitre 2 Jeux d’instructions 6809 Introduction : La première étape de la conception d’un microprocesseur est la définition de son jeu d’instructions décrit l’ensemble des opérations élémentaires que le microprocesseur pourra exécuter 1. Format des instructions : Les instructions (opération que le processeur doit accomplir) sont stockées dans la mémoire principale. Chaque instruction est toujours codée sur un nombre entier d’octets afin de faciliter son décodage par le processeur. Une instruction est composée de deux champs : Le code opération : c’est l’action que le processeur doit accomplir. Le code opérande : c’est les paramètres de l’action. Le code opérande dépend de l’opération, cela peut être une donnée ou bien une adresse d’un emplacement mémoire. Les instructions que l’on retrouve dans chaque microprocesseur peuvent être classées en 4 groupes : Transferts de données : de mémoire à registre, de registre à registre, de registre à mémoire. Les opérations arithmétiques : addition, soustraction, multiplication et division. Les opérations logiques : ET, OU, NON, OU exclusif, …...etc. Les opérations de contrôle : branchements inconditionnels ou conditionnels, appel de procédure. Une instruction sera codée par 1.2.3.ou 4 octets selon le mode d’adressage de la donnée. 2. Le langage machine : est un langage compris par le microprocesseur. Ce langage est difficile à maîtriser puisque chaque instruction est codée par une séquence propre de bits. Afin de faciliter la tache du programmeur, on à crée différents langages plus ou moins évolués. Le langage assembleur : est l'opération nécessaire pour convertir un programme source en un programme objet c à d en langage machine compréhensible par le microprocesseur. L’assembleur : c’est un programme de traduction qui traite chaque ligne du programme source pour fournir le code machine. Il détecte les erreurs. Le résultat de son travail s’appelle le programme objet. Chaque instruction représente un code machine différent, chaque microprocesseur peut posséder un assembleur diffèrent. Jeu d'instruction : constitue l'ensemble de toutes les mnémoniques existant pour rédiger un programme source, il constitue donc l’outil indispensable a tout programmeur en assembleur. Langage de programmation : Chaque instruction en langage de haut niveau correspondra à une succession d'instructions en langage assembleur, une fois développé, le programme en langage de haut niveau n'est donc pas compréhensible par le microprocesseur. Il faut le compiler pour le traduire en assembleur puis l'assembler pour le convertir en code machine compréhensible par le microprocesseur. Ces opérations sont réalisées à partir de logiciels spécialisés appelés Compilateur et assembleur. Langage haut niveau (if, then, for, write,…) Langage assembleur (LDA, ADD,MOV,…) Langage machine (1101,0011,1010,…) Compilation Assembleur Syntaxe du langage assembleur : Chaque ligne d’instruction du programme comporte quatre parties. Chaque partie est séparée par un blanc (espace). Etiquette Mnémonique Opérande Commentaire A. Etiquette : Ce champ n’est pas obligatoire. C’est un symbole d’au plus 6 caractères alphanumériques placé en début de ligne, commençant obligatoirement par une lettre de l’alphabet. Le rôle de l’étiquette est de permettre de repérer la position d’une instruction dans le programme. B. Mnémonique : C’est une chaine de 3,4 ou 5 caractères désignant une action au microprocesseur. Ces mnémoniques sont décrites par le constructeur du microprocesseur. C. Opérande : L’opération est un symbole ou une valeur numérique placée à la suite de la mnémonique. Le nombre et la taille des opérandes est défini pour chaque mnémoniques et pour le mode d’adressage nécessaire. D. Commentaire : Le champ commentaire est délimité par une étoile « * » pour certains microprocesseur ou par le symbole « % » pour d’autres. Ce champ est réservé au programmeur pour expliciter son programme et n’engendrent aucun code machine. Les directives : Pour programmer en assembleur, on doit utiliser, en plus des instructions assembleur, des directives : Une directive est une information que le programmeur fournit au compilateur. Elle n'est pas transformée en une instruction en langage machine. Elle n'ajoute donc aucun octet au programme compilé. Donc les directives sont des déclarations qui vont guider l'assembleur. * Directive « ORG » (abréviation de « origine ») : Fixe une adresse d’implantation du code généré du programme. * Directive « EQU » (abréviation de « équivalent à ») : Permet d’associer un symbole à une valeur numérique. * Directive « END » : Directive de fin de programme. 3. Temps d’exécution et performance : Chaque instruction nécessite un certain nombre de cycle d’horloge pour s’effectuer. Le nombre de cycle dépend de la complexité de l’instruction et aussi du mode d’adressage. La durée d’un cycle dépend de la fréquence d’horloge du séquenceur. La durée d’un cycle dépend bien sur de la fréquence d’horloge de l’ordinateur. Plus l’horloge bat rapidement, plus un cycle est court et plus on exécute un grand nombre d’instruction par seconde. On peut caractériser la puissance d’un microprocesseur par le nombre d’instruction qu’il est capable de traiter par seconde, pour cela, on définit : * Le CPI (Cycle Par Instruction) : qui représente le nombre moyen de cycles d’horloge nécessaire pour l’exécution d’une instruction pour un microprocesseur donné. * Le MIPS (Millions d’Instruction Par Seconde) : qui représente la puissance de traitement du microprocesseur MIPS = FH / CPI avec FH en MHZ Pour augmenter les performances d’un microprocesseur, on peut donc soit augmenter la fréquence d’horloge (limitation matérielle), soit diminuer le CPI (choix d’un jeu d’instruction adapté). 4. Le jeu d'instructions du 6809 : Une instruction peut être simple : 1 octet ou complexe : 4 octets. La plupart des instructions permettent un traitement, un déplacement des données se trouvant en mémoire ou dans un registre. L'ensemble des instructions de base, compris par le Registre d'Instruction, est constitué de quelques 86 instructions. En tenant compte des variantes (modes d'adressage) il atteint 1464 instructions. 5. Mode d’exécution d'une instruction : Exécuter une instruction c'est en faite réaliser le cycle : Extraction- Exécution Extraction : Lecture de la donnée en mémoire, t=1.TE avec TE période de l'horloge E. Il y a autant d'extractions que d'octets (code opératoire et code opérande) constituant l'instruction. Si m octets alors t= m.TE. Exécution : Traduction et interprétation de l'octet (code opératoire) une fois extrait. Un octet donc t=1.TE. Une période TE supplémentaire est nécessaire pour réaliser concrètement l'opération demandée, donc la durée totale de l'exécution d'une instruction est : m.TE +1.TE +1.TE soit (m+2)TE. 6. Classification des instructions : Les instructions sont réparties en groupes déterminés par leurs caractéristiques. A. Instructions de traitement des données : Instructions arithmétiques : addition (ADD, ABX, ADC) multiplication (MUL) soustraction (SBC, SUB) Instructions logiques rotation à droite et à gauche (ROL, ROR) décalage à droite et à gauche (ASR, LSR et ASL, LSL) les fonctions logiques de base (AND, OR, EOR) l'incrémentation/décrémentation et complémentation (COM - NEG - NOP - INC - DEC - CLR) B. Instruction de transfert de données transferts internes entre registres (EXG - TFR) transferts externes avec la mémoire (LD - ST) C. Instructions de tests et de branchements instructions de tests sur un bit / un octet (BIT, TST) instruction de comparaison (CMP) instruction de branchement conditionnel (branchement si) les indicateurs du CCR sont actifs D. Instructions de branchement inconditionnel et de saut saut relatif (BRA, BRN : 1 ou 2 octets) saut absolu (JMP : 2 octets) E. Instructions d’appel et de retour de sous-programme Appel : - saut absolu (JSR) - saut relatif (BSR) Retour : - RTS : le contenu (PC) sauvegardé dans la pile est restitué dans le registre PC. F. Instructions opérant sur les pointeurs U, S et X, Y. chargement de l'adresse effective (Load effective adress (in register)): LEA. empilement des registres dans la pile (PSH) dépilement des registres de la pile (PUL) G. Instructions de traitement des interruptions : ET logique avec le registre CCR puis attente d'interruption (CWAI) retour d'interruption (RTI) interruption logicielle (SWI) uploads/S4/ chapitre-2-lat-54.pdf
Documents similaires










-
26
-
0
-
0
Licence et utilisation
Gratuit pour un usage personnel Attribution requise- Détails
- Publié le Oct 20, 2021
- Catégorie Law / Droit
- Langue French
- Taille du fichier 0.1294MB