Vous êtes sur la page 1sur 3

MINISTERE DE L’ENSEIGNEMENT SUPERIEUR

ET DE LA RECHERCHE SCIENTIFIQUE
UNIVERSITE « ABBES LAGHROUR » DE KHENCHELA

FACULTE DES SCIENCES ET DE LA TECHNOLOGIE


Département de Génie Industriel

Spécialité : commande électrique.

TP N°3 : Microprocesseur-Microcontrôleur

Réalisé par : Dirigé par :


*Amer sandel dr. keziz

ANNEE UNIVERSITAIRE :
2023/2024
2.1.1 Analyse du code :
 Registre AX : Il est utilisé pour charger l'adresse de la variable CDATA dans le registre DS.
 Registre DS : Il est utilisé comme pointeur de segment de données pour accéder à la
variable CDATA.
 Registre SI : Il est utilisé comme pointeur d'indice pour parcourir le tableau table.
 Registre CX : Il est utilisé comme compteur pour compter le nombre d'éléments dans le
tableau.
 Registre BX : Il est utilisé pour accumuler le nombre d'éléments non nuls dans le
tableau.
2.1.2 Taille du tableau
La taille du tableau défini dans la section DATA est de 10 octets, car il y a 10 valeurs
séparées par des virgules.
2.1.3 Fonctionnement de la boucle
La boucle définie par les étiquettes Etq2 et Etq1 parcourt le tableau table à la
recherche d'éléments non nuls. Voici comment cela fonctionne :
 L'instruction CMP [SI], 0 compare la valeur de l'élément pointé par SI à 0.
 Si la valeur est différente de 0 (autrement dit, non nulle), l'instruction JNZ Etqi saute à
l'étiquette Etqi et incrémente le compteur BX.
 Sinon, l'instruction INC SI déplace le pointeur d'indice vers l'élément suivant du tableau.
 L'instruction DEC CX décrémente le compteur de boucle.
 La boucle continue tant que le compteur CX est supérieur à 0 et que l'élément pointé par
SI n'est pas égal à 0.
2.1.4 Utilisation de la valeur 0
La valeur 0 est utilisée pour marquer la fin du tableau. La boucle s'arrête lorsqu'elle
rencontre un élément égal à 0, car cela signifie qu'il n'y a plus d'éléments dans le
tableau.
2.1.5 Modification du tableau et observation des résultats
Vous pouvez modifier les valeurs du tableau table et exécuter le programme pour
observer les changements dans le résultat. Par exemple, si vous remplacez le premier 2
par un 5, le programme comptera un élément non nul supplémentaire et affichera un
résultat différent.
2.1.6 Modification du programme pour calculer la somme
Pour modifier le programme afin de calculer la somme des nombres différents de zéro,
vous pouvez ajouter les instructions suivantes après la boucle :
 XOR AX, AX : initialise le registre AX à 0.
 MOV DL, [SI] : charge la valeur de l'élément pointé par SI dans le registre DL.
 ADD AX, DL : ajoute la valeur de DL au registre AX.
 JMP Etq1 : retourne au début de la boucle pour traiter l'élément suivant.
Avec ces modifications, le programme accumulera la somme des éléments non nuls
dans le registre AX avant de l'afficher à la fin.

Vous aimerez peut-être aussi