Chapitre III : Logiciel du Contrôleur III-1 Organisation et utilisation du jeu
Chapitre III : Logiciel du Contrôleur III-1 Organisation et utilisation du jeu d’instructions III-1-1 Les types d’instructions Il existe 4 types d’instructions : III-1-2 Les instructions « orientées octet » Ce sont des instructions qui manipulent les données sous forme d’octets. Elles sont codées de la manière suivante : Format des Instructions orientées Octets ou Bytes -6 bits pour l’instruction : logique, car comme il y a 35 instructions, il faut 6 bits pour pouvoir les code toutes -1 bit de destination(d) pour indiquer si résultat obtenu doit être conservé dans le regist de travail de l’unité de calcul (W pour Work) o sauvé dans l’opérande (F pour File). - Reste 7 bits pour encoder l’opérande (File) 7 bits ne donnent pas accès à la mémoire RA totale, donc voici ici l’explication de la division de RAM en deux banques. Il s’agit en réalité des bi RP0 et RP1 du registre STATUS. Exemple d’instructions « orientées octets » Exemple Movf FSR ,W ; (FSR) W Movf PCLATH ,W ;(PCLATH) W movf EEDATA, W ; (EEDATA) ) W Exemple Soit PCLATH-temp: variable de sauvegarde de PCLATH dans la zone commune. Movf PCLATH, W ; (PCLATH) ( W) Movwf PCLATH_temp ; (W) PCLATH_temp .. .. .. Pour utiliser PCLATH, par exemple dans un sous-progr. Clrf PCLATH « Les instructions « orientées bits » Ce sont des instructions destinées à manipuler directement des bits d’un registre particulier. Elles sont codées de la manière suivante : -4 bits pour l’instruction (dans l’espace resté libre par les instructions précédentes) -3 bits pour indiquer le numéro du bit à manipuler (bit 0 à 7 possible), et de nouveau : -7 bits pour indiquer l’opérande. Exemple d’instructions « orientées bits » Exemple Bcf INTCON, INTF ; mettre à 0 le bit ; INTF du registre ; INTCON Bcf STATUS, RP0 Exemple Instruction orientée bit bsf STATUS, RP0 ; RP0=0 et RP1=1, ; sélectionner bank1 Exemple Btfsc INTCON, TOIE ; tester si l’interruption ;TIMER0 ; est autorisée ? Btfss INTCON, T0IF ; oui, tester si interrupt ;TIMER0 est en cours Les instructions générales et de contrôle Ce sont les instructions qui manipulent des données qui sont codées dans l’instruction directement. Nous verrons ceci plus en détail lorsque nous parlerons des modes d’adressage. Elles sont codées de la manière suivante : - L’instruction est codée sur 6 bits - Elle est suivie d’une valeur IMMEDIATE codée sur 8 bits (donc de 0 à 255). Exemple d’instructions générales Exemple Movlw B’00100111’ ; w = ‘B00100111’= 0x27 Movlw addwrite ; charger adresse d'écriture Les sauts et appels de sous-routines Ce sont les instructions qui provoquent une rupture dans la séquence de déroulement du programme. Elles sont codées de la manière suivante : - Les instructions sont codées sur 3 bits - La destination codée sur 11 bits Nous pouvons déjà en déduire que les sauts ne donnent accès qu’à 2K de mémoire programme (211). Exemple: PCLATH et les sauts directs movlw 0x13 ; charger 0x13, movwf PCLATH ; dans PCLATH goto 0x112 ; sauter théoriquement en ; 0x112 Donner en binaire le contenu du PC Voici ce que ça donne : movlw 0x13 ; charger 0x13, soit B’10011’, donc b4=1, ; et b3=0 Remarques Le jeu d’instructions du 16F876 est strictement identique à celui du 16F84, et, de ce fait, présente les mêmes limitations. Une de celle-ci, la plus gênante, est le nombre de bits qui accompagne les instructions de saut, comme le « goto ». Rappelez-vous que les instructions de saut sont de la forme: Op-code + 11 bits de destination. Or, les sauts sur 11 bits ne permettent « que » des sauts à l’intérieur d’une page de 2K Mots. Notre processeur utilise un maximum de 8Kmots de programme, et nécessite donc 2 bits supplémentaires pour accéder à l’intégralité de la mémoire programme. Le schéma-bloc donnant bien une largeur de bus d’adressage de 13 bits. Pour résumer, le saut s’effectuera à l’adresse donnée en argument complétée en poids fort par les 2 bits b4 et b3 de PCLATH Les bits 2 à 0 de PCLATH sont inutilisés ici uploads/Management/ jeux-d-x27-instruction-pdf.pdf
Documents similaires










-
35
-
0
-
0
Licence et utilisation
Gratuit pour un usage personnel Attribution requise- Détails
- Publié le Jan 11, 2022
- Catégorie Management
- Langue French
- Taille du fichier 0.5308MB