Académique Documents
Professionnel Documents
Culture Documents
ère
Filière/Classe : 1 Année Ingénieurs Mécatroniques Durée : 1h30
Enseignants :Y. Lahbib, F. Salem, W. Hakimi, M. Ferchichi Nbre de page :5
Documents et calculatrice: non autorisés Barème :
Exercice 1 :
5) Quelles sont les trois familles des PICs ? Donner la taille en bits d'une instruction appartenant à
chaque famille.
Exercice 2 :
Nous proposons de vous guider pour écrire un programme en assembleur permettant de calculer le produit de deux
nombres (A et B) codés sur 8 bits et considérés comme non signés et fournit un résultat sur 16 bits (PH sur 8 bits
et PL sur 8 bits), tel que:
Registre Signification
PL Partie du produit de poids faible
PH Partie du produit de poids fort
A Multiplicande
B : Multiplicateur
Count Compteur de nombre d'itérations
1
A7 A6 A5 A4 A3 A2 A1 A0
* B7 B6 B5 B4 B3 B2 B1 B0
PH7 PH6 PH5 PH4 PH3 PH2 PH1 PH0 PL7 PL6 PL5 PL4 PL3 PL2 PL1 PL0
=
L'organigramme utilisé est donné par la figure 1.
1- Définir dans la RAM du PIC16F877 les variables nécessaires pour ce programme en utilisant EQU ou
CBLOCKS.
2- Écrire le reste de ce programme, en initialisant les variables A et B aux valeurs suivantes : A=(11001101) 2 et
B=(10001011)2.
2
Figure 1 : Organigramme de la multiplication 8 bits par 8 bits
Début
Count=8
PL=PH=0
W A
RAZ de la retenue
STATUS,C 0
Rotation à droite du B
STATUS,C
=1
PH=PH+W
Rotation à droite de PH
Rotation à droite de PL
Count= Count-1
Count=0 ?
Début
3
Exercice 3 :
On donne le code hexadécimal suivant provenant du désassemblage d’un code assembleur du PIC 16F877. On
définit les registres suivants :
N EQU 70h
M EQU 75h
L EQU 7Ah
On propose d’utiliser les deux documents en annexe pour répondre aux questions suivantes.
1. Régénérez le code assembleur équivalent dans la colonne 2 du tableau ci-dessous?
2. Que fait ce programme
3. Quelle est la directive du préprocesseur qui a permis de placer l'instruction de la ligne 16 à l'adresse A.
11 0001 00F0
12 0002 0AF0
13 0003 0103
14 0004 200E
15 0005 0AF0
16 000A 307A
17 000B 00F5
18 000C 03F5
19 000D 2800
20 000E 01F0
21 000F 0103
22 0010 0008
23 2007 220C
4
Liste des instructions
5
Annexe2 : Plan de la RAM (Memory Map)