Informatique Industrielle : Exercices Jeu d’instructions
Télécharger PDFCorrections des exercices de Jeu d’instructions
Écrire un nombre en assembleur
Un nombre peut être représenté en assembleur selon sa base :
- Hexadécimal : 0x0A ou H’0A’ ou 0Ah (exemple : 10)
- Binaire : B’00001010’ (exemple : 10)
- Décimal : D’10’ ou .10 ou 10 (exemple : 10)
Adresse et contenu d’une variable
Soit X une variable (registre ou fichier en langage Microchip) dans la RAM.
- adresse : 0x20
- contenu : (X) = 0xA6
Dans les exercices suivants, X désigne une variable (registre) quelconque dans la RAM.
Addition et soustraction binaire
Les opérations binaires de base (addition et soustraction) fonctionnent avec des bits a et b.
Addition binaire
| a | b | S (somme) | R (retenue) |
|---|---|---|---|
| 0 | 0 | 0 | 0 |
| 0 | 1 | 1 | 0 |
| 1 | 0 | 1 | 0 |
| 1 | 1 | 0 | 1 |
Soustraction binaire
| a | b | D (différence) | E (emprunt) |
|---|---|---|---|
| 0 | 0 | 0 | 0 |
| 0 | 1 | 1 | 1 |
| 1 | 0 | 1 | 0 |
| 1 | 1 | 0 | 0 |
Fonctions logiques
Les opérations logiques de base en assembleur Microchip sont :
- AND (ET)
- OR (OU)
- XOR
- NOT
Table de vérité pour AND, OR et XOR
| a | b | AND (S) | OR (S) | XOR (S) |
|---|---|---|---|---|
| 0 | 0 | 0 | 0 | 0 |
| 0 | 1 | 0 | 1 | 1 |
| 1 | 0 | 0 | 1 | 1 |
| 1 | 1 | 1 | 1 | 0 |
Exercices
Exercice 1 : Instructions MOV
1. movlw k : Charge la valeur littérale k dans le registre W.
2. movwf f : Charge le contenu du registre W dans le fichier (registre) f.
3. movf f,d : Charge le contenu du fichier f dans le registre W et met à jour le bit de destination d.
4. movf X,w : Charge le contenu de la variable X dans le registre W.
5. movf X,f : Charge le contenu de la variable X dans le fichier (registre) f.
Exercice 2 : Instructions arithmétiques
1. addlw k : Ajoute la valeur littérale k au registre W.
2. addwf f,d : Ajoute le contenu du fichier f au registre W et met à jour le bit de destination d.
3. addwf X,w : Ajoute le contenu de la variable X au registre W.
4. addwf X,f : Ajoute le contenu de la variable X au contenu du fichier f.
5. sublw k : Soustrait la valeur littérale k du registre W.
6. subwf f,d : Soustrait le contenu du fichier f du registre W et met à jour le bit de destination d.
7. subwf X,w : Soustrait le contenu de la variable X du registre W.
8. subwf X,f : Soustrait le contenu de la variable X du fichier f.
9. incf f,d : Incrémente le contenu du fichier f et met à jour le bit de destination d.
10. decf f,d : Décrémente le contenu du fichier f et met à jour le bit de destination d.
Exercice 3 : Instructions logiques
1. andlw k : Applique une opération logique AND entre le registre W et la valeur littérale k.
2. andwf f,d : Applique une opération logique AND entre le fichier f et le registre W, puis stocke le résultat dans f et met à jour le bit de destination d.
3. andwf X,w : Applique une opération logique AND entre la variable X et le registre W.
4. andwf X,f : Applique une opération logique AND entre la variable X et le fichier f.
5. iorlw k : Applique une opération logique OR entre le registre W et la valeur littérale k.
6. iorwf f,d : Applique une opération logique OR entre le fichier f et le registre W, puis stocke le résultat dans f et met à jour le bit de destination d.
7. iorwf X,w : Applique une opération logique OR entre la variable X et le registre W.
8. iorwf X,f : Applique une opération logique OR entre la variable X et le fichier f.
9. xorlw k : Applique une opération logique XOR entre le registre W et la valeur littérale k.
10. xorwf f,d : Applique une opération logique XOR entre le fichier f et le registre W, puis stocke le résultat dans f et met à jour le bit de destination d.
11. xorwf X,w : Applique une opération logique XOR entre la variable X et le registre W.
12. xorwf X,f : Applique une opération logique XOR entre la variable X et le fichier f.
13. comf f,d : Complète le contenu du fichier f (opération NOT), puis stocke le résultat dans f et met à jour le bit de destination d.
14. comf X,w : Complète la variable X (opération NOT), puis stocke le résultat dans le registre W.
15. comf X,f : Complète la variable X (opération NOT), puis stocke le résultat dans le fichier f.
Exercice 4 : Instructions de remise à zéro et de manipulation de bits
1. clrf f : Remet à zéro le fichier (registre) f.
2. clrw : Remet à zéro le registre W.
3. bsf f,b : Positionne le bit b du fichier f à 1.
4. bcf f,b : Positionne le bit b du fichier f à 0.
FAQ
Qu’est-ce qu’un registre en assembleur Microchip ?
Un registre est une mémoire temporaire utilisée pour stocker des données ou des résultats d’opérations. Dans la famille Microchip (PIC), les registres incluent le registre W et les fichiers (files) accessibles via des adresses.
À quoi sert le bit de destination d dans les instructions ?
Le bit de destination d est un indicateur qui permet de vérifier si une opération a produit un débordement, une retenue ou un emprunt, selon le contexte. Il est souvent utilisé pour la gestion des conditions dans les programmes.
Quelle est la différence entre movlw et movwf ?
movlw k charge une valeur littérale dans le registre W, tandis que movwf f transfère le contenu du registre W vers un fichier (registre) de la RAM.