Leçons de niveau 15

Utiliser les PIC 16F et 18F/Exercices/Les structures de contrôle et l'Arithmétique

Une page de Wikiversité.
Sauter à la navigation Sauter à la recherche
Les structures de contrôle et l'Arithmétique
Image logo représentative de la faculté
Exercices no3
Leçon : Utiliser les PIC 16F et 18F
Chapitre du cours : Les structures de contrôle et l'Arithmétique en assembleur

Ces exercices sont de niveau 15.

Exo préc. :Arithmétique et assembleur
Exo suiv. :Les sous-programmes en assembleur
Icon falscher Titel.svg
En raison de limitations techniques, la typographie souhaitable du titre, « Exercice : Les structures de contrôle et l'Arithmétique
Utiliser les PIC 16F et 18F/Exercices/Les structures de contrôle et l'Arithmétique
 », n'a pu être restituée correctement ci-dessus.




Exercice 1[modifier | modifier le wikicode]

1°) Sur combien de bits est l'adresse de destination du GOTO ? À comparer avec les 1k d'adresse mémoire du 16F84.

2°) Le PIC 16F877 possède 8k de mémoire programme et la même architecture que le 16F84 (mêmes instructions). Comment peut-on réaliser un saut de la première adresse vers la dernière ?

3°) Assembler le programme du TD 2 utilisant un GOTO.

Exercice 2[modifier | modifier le wikicode]

1°) On cherche à additionner deux valeurs 8 bits égales à 255 (0xFF). Quel est le résultat de la somme? Ce résultat tient-il dans une variable 8 bits ?

2°) Écrire un programme qui additionne quatre valeurs valeurs 8 bits pour mettre le résultat dans deux variables 8 bits("somme_pdsfort" et "somme_pdsfaible"). On vous donne la structure de données associée :

	CBLOCK 0x00C ; début de la zone variables
		somme_pdsfort :1     ; Zone de 1 byte 
		somme_pdsfaible : 1 	; zone de 1 bytes 
		val1 :1  ; zone de 1 byte 1ere valeur
		val2 :1  ; zone de 1 byte 2eme valeur
		val3 :1  ; zone de 1 byte 3eme valeur
		val4 :1  ; zone de 1 byte 4eme valeur
	ENDC ; Fin de la zone

Exercice 3[modifier | modifier le wikicode]

Utiliser les opérations de décalage pour ajouter un calcul de la moyenne pour l'exercice 2.

Exercice 4[modifier | modifier le wikicode]

(extraits de l'exercice 2 du Devoir Surveillé de 2010)

Structure for ... (rappel de cours)[modifier | modifier le wikicode]

Si l’on sait combien de fois on exécute une boucle on peut utiliser la technique suivante :

Début d’un principe


Fin du principe

Question[modifier | modifier le wikicode]

Réaliser un programme qui vient chercher six fois des valeurs (8 bits) sur le PORTB et les additionne dans une variable "Somme" (8 bits). On vous demande de gérer la somme sur 8 bits seulement sans gérer la retenue.

Indication[modifier | modifier le wikicode]

	movf PORTB,W		; PORTB -> W

L'instruction ci-dessus lit un registre qui s’appelle PORTB pour mettre sa valeur dans l’accumulateur W.