examens_microprocesseur-microcontrolleur.pdf

48
Université Sidi Mohamed Ben Abdellah Faculté des Sciences et Techniques Département Génie Industriel MST Génie Industriel Examen d'informatique industrielle 2005 – 2006 Problème I Écrire un programme en assembleur qui effectue les opérations suivantes : 1. Chargement dans la mémoire des données suivantes 32h, 0Ah, 89h, 47h, BCh, FFh, 11h 84h, BAh, 90h, B7h, 6Ah, F0h, 00h 2. Comparaison entre deux éléments de la même colonne. 3. Affectation du nombre le plus grand à la pile. La comparaison doit commencer à partir de la 1 ère colonne : 4. Retour au DOS Problème II L’interfaçage entre un afficheur LCD et le port parallèle d’un PC est réalisé comme le montre la figure ci-dessous : Avec : E (Enable) marche sur front descendant permettant la saisie de la donnée à afficher. RS (Registre Select) travaille au niveau bas validant l’afficheur. a. Faire un organigramme qui permet d’afficher la série 00h – FFh. L’affichage de chaque donnée dure 1s. Justifier les différentes étapes ainsi que les valeurs d’initialisation des registres. b. Traduire l’organigramme en langage C. 32h, 0Ah, 89h, 47h, BCh, FFh, 11h 84h, BAh, 90h, B7h, 6Ah, F0h, 00h 1 ère colonne dernière colonne RS R/W E Port Parallèle Afficheur LCD Select printer strobe D0 D1 D2 D3 D4 D5 D6 D7 D0 D1 D2 D3 D4 D5 D6 D7 Vcc Vcc

Upload: sarah-berrada

Post on 02-Feb-2016

4 views

Category:

Documents


0 download

TRANSCRIPT

Page 1: Examens_Microprocesseur-Microcontrolleur.pdf

Université Sidi Mohamed Ben Abdellah Faculté des Sciences et Techniques

Département Génie Industriel

MST Génie Industriel Examen d'informatique industrielle 2005 – 2006

Problème I Écrire un programme en assembleur qui effectue les opérations suivantes : 1. Chargement dans la mémoire des données suivantes

• 32h, 0Ah, 89h, 47h, BCh, FFh, 11h • 84h, BAh, 90h, B7h, 6Ah, F0h, 00h

2. Comparaison entre deux éléments de la même colonne.

3. Affectation du nombre le plus grand à la pile. La comparaison doit commencer à partir de la 1ère colonne :

4. Retour au DOS

Problème II L’interfaçage entre un afficheur LCD et le port parallèle d’un PC est réalisé comme le montre la figure ci-dessous :

Avec : E ≡ (Enable) marche sur front descendant permettant la saisie de la donnée à afficher. RS ≡ (Registre Select) travaille au niveau bas validant l’afficheur.

a. Faire un organigramme qui permet d’afficher la série 00h – FFh. L’affichage de chaque donnée dure 1s. Justifier les différentes étapes ainsi que les valeurs d’initialisation des registres.

b. Traduire l’organigramme en langage C.

32h, 0Ah, 89h, 47h, BCh, FFh, 11h 84h, BAh, 90h, B7h, 6Ah, F0h, 00h

1ère colonne dernière colonne

RS R/W E

Port Parallèle

Afficheur LCD

Select printer

strobe

D0 D1 D2 D3 D4 D5 D6 D7

D0 D1 D2 D3 D4 D5 D6 D7

Vcc

Vcc

Page 2: Examens_Microprocesseur-Microcontrolleur.pdf

Université Sidi Mohamed Ben Abdellah Faculté des Sciences et Techniques

Département Génie Industriel

Solution Problème I :

DOSSEG

.MODEL SMALL

.STACK 0100H

.DATA

T1 DB 32H, 0AH, 89H, 47H, 0BCH, 0FFH, 11H

T2 DB 84H, 0BAH, 90H, 0B7H, 6AH, 0F0H, 00H

.CODE

START:

MOV AX, @DATA

MOV DS, AX

MOV AH, 00H

MOV BX, OFFSET T1

MOV CX, 7

BOUCLE: MOV AL, [BX]

CMP AL, [BX+7]

JA SORTIE

MOV AL, [BX+7]

SORTIE: PUSH AX

INC BX

LOOP BOUCLE

MOV AX, 4C00H

INT 21H

END START

Page 3: Examens_Microprocesseur-Microcontrolleur.pdf

Université Sidi Mohamed Ben Abdellah Faculté des Sciences et Techniques

Département Génie Industriel

MST Génie Industriel Examen d'informatique industrielle 2005 – 2006

Écrire un programme en assembleur qui effectue les opérations suivantes :

1. Saisie au clavier deux caractères.

2. Réaliser la somme des codes ASCII des deux caractères.

3. Afficher le caractère correspondant.

Les 3 opérations doivent être répétées 5 fois, avant d’effectuer le retour au DOS.

On mettra l’opération 1 en sous programme.

Page 4: Examens_Microprocesseur-Microcontrolleur.pdf

Université Sidi Mohamed Ben Abdellah Faculté des Sciences et Techniques

Département Génie Industriel

Solution DOSSEG

.MODEL SMALL

.CODE

START:

MOV CX, 05H

BOUCLE: CALL SAISIE

MOV DL, AL

CALL SAISIE

ADD DL, AL

MOV AH, 02H

INT 21H

LOOP BOUCLE

MOV AX, 4C00H

INT 21H

SAISIE PROC NEAR

MOV AH, 01H

INT 21H

RET

SAISIE ENDP

END START

Page 5: Examens_Microprocesseur-Microcontrolleur.pdf

Université Sidi Mohamed Ben Abdellah Faculté des Sciences et Techniques

Département Génie Industriel

MST Génie Industriel Examen d'informatique industrielle 2007 – 2008

Le code ASCII représente chaque caractère sur 8 bits (1 octet). Le chiffre de poids fort

est toujours égal à 0. Les codes des lettres alphabétiques minuscules se suivent et

varient de 61h à 7Ah. Lorsque le 6ème bit passe à 0 le caractère prend la forme

majuscule.

Exemple : Le code ASCII de a est 61h : 0 1 1 0 0 0 01

Lorsque a passe en majuscule A, le code devient 41h : 0 1 0 0 0 0 0 1

Écrire un programme assembleur qui doit :

1. Mettre dans la pile les codes ASCII de toutes les lettres minuscules (a … z).

2. Transformer les caractères minuscules en caractères majuscules en les affichant un par un.

3. Retourner au DOS. On mettra la transformation d’un caractère et son affichage sous forme de sous programme.

Page 6: Examens_Microprocesseur-Microcontrolleur.pdf

Université Sidi Mohamed Ben Abdellah Faculté des Sciences et Techniques

Département Génie Industriel

Solution:

DOSSEG

.MODEL SMALL

.STACK 0100H

.CODE

START:

MOV AL, 61H

SAUT: PUSH AX

INC AX

CMP AL, 7AH

JBE SAUT

MOV SI, 02H

BOUCLE: CALL TRANSFORMATION

ADD SI, 02H

CMP DL, 41H

JA BOUCLE

MOV AX, 4C00h

INT 21H

TRANSFORMATION PROC NEAR

MOV BP, SP

MOV DL, [BP+SI]

AND DL, 0DFH

MOV AH, 02H

INT 21H

RET

TRANSFORMATION ENDP

END START

Page 7: Examens_Microprocesseur-Microcontrolleur.pdf

Université Sidi Mohamed Ben Abdellah Faculté des Sciences et Techniques

Département Génie Industriel

MST Génie Industriel

Examen d'informatique industrielle 2008 – 2009

1. Préciser pour chacune des instructions suivantes le mode d’adressage :

MOV AL, [000B] ADD AL, C4h

MOV [BX], 00h MOV AX, 0FFh

2. Effectuer les opérations suivantes, sur 4 bits, et préciser les valeurs des indicateurs CF, ZF, SF, OF, et PF :

1010 + 0101 et 0111 + 0001 3. Quels sont les rôles des registres suivants :

IP et SP ? 4. Faire le programme assembleur suivant :

• Écrire dans la mémoire 18h, 11h, 29h, 04h, 20h • Ranger dans la pile la valeur minimale du tableau (lecture à partir de la

mémoire)

Page 8: Examens_Microprocesseur-Microcontrolleur.pdf

Université Sidi Mohamed Ben Abdellah Faculté des Sciences et Techniques

Département Génie Industriel

Solution: EXERCICE 4:

DOSSEG

.MODEL SMALL

.STACK 0100H

.DATA

T1 DB 18H, 11H, 29H, 04H, 20H

.CODE

START:

MOV AX, @DATA

MOV DS, AX

MOV AH, 00H

MOV BX, OFFSET T1

MOV CX, 4

MOV AL, [BX]

BOUCLE:

CMP AL, [BX+1]

JB S1

MOV AL, [BX+1]

S1: INC BX

LOOP BOUCLE

PUSH AX

MOV AX, 4C00H

INT 21H

END START

Page 9: Examens_Microprocesseur-Microcontrolleur.pdf

Université Sidi Mohamed Ben Abdellah Faculté des Sciences et Techniques

Département Génie Industriel

MST en Génie Industriel

Examen de rattrapage d'informatique industrielle 2008 – 2009

1. Détailler le principe de tous les modes d’adressage du 80x86.

2. Faire le programme assembleur suivant : • Créer le tableau suivant dans la mémoire : 01 00 02 00 03 00 04 00 • Ranger dans la pile le nombre de valeurs nulles de ce tableau (lire les

données à partir du tableau)

Page 10: Examens_Microprocesseur-Microcontrolleur.pdf

Université Sidi Mohamed Ben Abdellah Faculté des Sciences et Techniques

Département Génie Industriel

Solution: DOSSEG

.MODEL SMALL

.STACK 0100H

.DATA

T1 DB 01H, 00H, 02H, 00H, 03H, 00H, 04H, 00H

.CODE

START:

MOV AX, @DATA

MOV DS, AX

MOV AH, 00H

MOV BX, OFFSET T1

MOV AL, 08H

MOV CX, AL

SORTIE: CMP [BX], 00H

JNZ S1

JMP S2

S1: DEC AL

S2: INC BX

LOOP SORTIE

PUSH AX

MOV AX, 4C00H

INT 21H

END START

Page 11: Examens_Microprocesseur-Microcontrolleur.pdf

Université Sidi Mohamed Ben Abdellah Faculté des Sciences et Techniques

Département Génie Industriel

Master ST en Génie Industriel

Examen de microprocesseur 2008 – 2009

1. Parmi les instructions suivantes indiquer celles qui sont incorrectes et corriger les :

PUSH AL ROL AX, 2

MOV AX, var MOV AX, BL

MOV AX, [0001] 2. Détailler les étapes de l’exécution des deux instructions suivantes en précisant

le mode d’adressage :

MOV BX, AX MOV AX, 03h

AND AX, [SI+6]

3. Citer tous les registres du 80x86 en indiquant leurs rôles.

4. Faire le programme assembleur suivant • Créer le tableau suivant dans la mémoire : 01 00 02 00 03 00 04 00

• Ranger dans AX le nombre de valeur non nulles de ce tableau (lire les

données à partir du tableau).

Page 12: Examens_Microprocesseur-Microcontrolleur.pdf

Université Sidi Mohamed Ben Abdellah Faculté des Sciences et Techniques

Département Génie Industriel

Solution 1:

EXERCICE 4:

DOSSEG

.MODEL SMALL

.STACK 0100H

.DATA

T1 DB 01H, 00H, 02H, 00H, 03H, 00H, 04H, 00H

.CODE

START:

MOV AX, @DATA

MOV DS, AX

MOV AH, 00H

MOV BX, OFFSET T1

MOV AL, 8

MOV CX, AL

SORTIE: CMP [BX], 00H

JE S1

JMP S2

S1: DEC AL

S2: INC BX

LOOP SORTIE

MOV AX, 4C00H

INT 21H

END START

Page 13: Examens_Microprocesseur-Microcontrolleur.pdf

Université Sidi Mohamed Ben Abdellah Faculté des Sciences et Techniques

Département Génie Industriel

Solution 2:

EXERCICE 4:

DOSSEG

.MODEL SMALL

.STACK 0100H

.DATA

T1 DB 01H, 00H, 02H, 00H, 03H, 00H, 04H, 00H

.CODE

START:

MOV AX, @DATA

MOV DS, AX

MOV AH, 00H

MOV BX, OFFSET T1

MOV AL, 8

MOV CX, AL

SORTIE: CMP [BX], 00H

JNE S2

DEC AL

S2: INC BX

LOOP SORTIE

MOV AX, 4C00H

INT 21H

END START

Page 14: Examens_Microprocesseur-Microcontrolleur.pdf

Université Sidi Mohamed Ben Abdellah Faculté des Sciences et Techniques

Département Génie Industriel

Master ST en Génie Industriel

Examen de rattrapage de microprocesseur 2008-2009

1. Donner la position des indicateurs CF, ZF, SF, PF et OF à la fin de l’exécution des instructions suivantes :

MOV AX, AAh ADD AX, 11h ADC AX, 45h

Préciser le contenu de AX.

2. Quelle est la procédure suivie par le processeur lors de l’appel d’un sous programme à passage de paramètre par la pile.

3. Faire le programme assembleur suivant:

• Créer le tableau suivant dans la mémoire :

01h, 00h, 02h, 00h, 03h, 00h, 02h, 00h 01h, 02h, 02h, 01h, 03h, 00h, 04h, 00h

• Faire l'addition de toutes les colonnes et ranger dans la pile les éléments des colonnes qui donnent comme résultat la valeur 6.

Page 15: Examens_Microprocesseur-Microcontrolleur.pdf

Université Sidi Mohamed Ben Abdellah Faculté des Sciences et Techniques

Département Génie Industriel

Solution: EXERCICE 3:

DOSSEG

.MODEL SMALL

.STACK 0100H

.DATA

T1 DB 01H, 00H, 02H, 00H, 03H, 00H, 02H, 00H

T2 DB 01H, 02H, 02H, 01H, 03H, 00H, 04H, 00H

.CODE

START:

MOV AX, @DATA

MOV DS, AX

MOV AH, 00H

MOV BX, OFFSET T1

MOV CX, 8

SORTIE: MOV AL, [BX]

ADD AL, [BX+8]

CMP AL, 06H

JNE S1

PUSH [BX]

PUSH [BX+8]

S1: INC BX

LOOP SORTIE

MOV AX, 4C00H

INT 21H

END START

Page 16: Examens_Microprocesseur-Microcontrolleur.pdf

Université Sidi Mohamed Ben Abdellah Faculté des Sciences et Techniques

Département Génie Industriel

Master ST en Génie Industriel

Contrôle N°2 Microprocesseur & Microcontrôleur 2009 - 2010

Exercice I :

1. Citer les registres d’index et préciser leur rôle

2. Rappeler le rôle du registre PSW ainsi que celui de chaque indicateur

3. Pourquoi la mémoire est-elle divisée en plusieurs segments de 64 ko chacun ?

Exercice II :

1. Écrire le programme assembleur suivant:

• Charger le data segment par 3 valeurs différentes • Comparer les et mettre la pus grande valeur dans la pile • Additionner les 3 valeurs de la mémoire et empiler le résultat • Empiler les tris valeurs de la mémoire

2. Illustrer, à l'aide d'un schéma la situation de la pile (Valeurs, position SP)

Page 17: Examens_Microprocesseur-Microcontrolleur.pdf

Université Sidi Mohamed Ben Abdellah Faculté des Sciences et Techniques

Département Génie Industriel

Solution: Exercice II :

DOSSEG

.MODEL SMALL

.STACK 0100 H

.DATA

VAR1 DB 01H

VAR2 DB 04H

VAR3 DB 03H

.CODE

START:

MOV AX, @DATA

MOV DS, AX

MOV AH, 00H

MOV AL, VAR1

CMP AL, VAR2

JA S1

MOV AL, VAR2

S1:

CMP AL, VAR3

JA S2

MOV AL, VAR3

S2:

PUSH AX

MOV AL, VAR1

ADD AL, VAR2

ADD AL, VAR3

PUSH AX

MOV BX, OFFSET VAR1

MOV CX, 3

S3:

MOV AL,[BX]

PUSH AX

INC BX

LOOP S3

MOV AX, 4C00H

INT 21H

END START

0003

0008

0001

0004

0003

SP 100h

SP FEh

SP FCh

SP FAh

SP F8h

SP F6h

Page 18: Examens_Microprocesseur-Microcontrolleur.pdf

Université Sidi Mohamed Ben Abdellah Faculté des Sciences et Techniques

Département Génie Industriel

Master ST en Génie Industriel

Examen Microprocesseur & Microcontrôleur 2009 - 2010

Exercice I :

1. Quelle est la différence entre une interruption matérielle et une interruption

logicielle ?

2. Donner les étapes de traitement d’une interruption matérielle

3. Indiquer le type du mode d’adressage des instructions suivantes en expliquant la méthode de saisie de la donnée

ADC AX, 50h INC BX

MOV DX, [SI+5]

Exercice II : Faire un programme en assembleur qui affiche les lettres de l’alphabet en minuscule et en majuscule comme le montre l’exemple ci-dessous :

a A b B c C … z Z

Mettre sous forme de sous programmes

• L’affichage d’un caractère • La transformation du caractère

Page 19: Examens_Microprocesseur-Microcontrolleur.pdf

Université Sidi Mohamed Ben Abdellah Faculté des Sciences et Techniques

Département Génie Industriel

Solution: Exercice II :

DOSSEG

.MODEL SMALL

.CODE

START:

MOV BL, 61H

SAUT:

MOV DL, BL

CALL AFFICHAGE

CALL TRANSFORMATION

CALL AFFICHAGE

INC BL

CMP BL, 7AH

JBE SAUT

MOV AX, 4C00H

INT 21H

AFFICHAGE PROC NEAR

MOV AH, 02H

INT 21H

RET

AFFICHAGE ENDP

TRANSFORMATION PROC NEAR

AND DL, 0DFH

RET

TRANSFORMATION ENDP

END START

DOSSEG

.MODEL SMALL

.CODE

START:

MOV AL, 61H

SAUT:

MOV DL, AL

CALL AFFICHAGE

CALL TRANSFORMATION

CALL AFFICHAGE

INC AL

CMP AL, 7AH

JBE SAUT

MOV AX, 4C00H

INT 21H

AFFICHAGE PROC NEAR

MOV AH, 02H

INT 21H

RET

AFFICHAGE ENDP

TRANSFORMATION PROC NEAR

AND DL, 0DFH

RET

TRANSFORMATION ENDP

END START

Page 20: Examens_Microprocesseur-Microcontrolleur.pdf

Université Sidi Mohamed Ben Abdellah Faculté des Sciences et Techniques

Département Génie Industriel

Master ST en Génie Industriel

Contrôle continu Microprocesseur & Microcontrôleur 2010-2011

Exercice I :

1. Préciser le rôle de chacun des registres suivants :

CS, DS, SP et IP

2. Quel est l’intérêt du registre flag (PSW) ?

Exercice II :

1. Écrire un programme en assembleur qui exécute les opérations suivantes:

• Mettre dans la pile les valeurs ci-dessous dans cet ordre :

18h, 11h, 29h, 04h, 20h

• Lire les données à partir de la pile en les comparants. Ranger la valeur la plus grande dans le registre DX

2. Illustrer, à l'aide d'un schéma la situation de la pile après l’exécution de l’instruction d’empilement. Préciser les différentes valeurs de SP.

Page 21: Examens_Microprocesseur-Microcontrolleur.pdf

Université Sidi Mohamed Ben Abdellah Faculté des Sciences et Techniques

Département Génie Industriel

Solution: Exercice II :

DOSSEG

.MODEL SMALL

.STACK 0100H

.DATA

T1 DB 18H, 11H, 29H, 04H, 20H

.CODE

START:

MOV AX, @DATA

MOV DS, AX

MOV AH, 00H

MOV BX, OFFSET T1

MOV CX, 5

SORTIE: MOV AL, [BX]

INC BX

PUSH AX

LOOP SORTIE

POP DX

S1: CMP SP, 100H

JZ FIN

POP AX

CMP DL, AL

JA S1

MOV DL, AL

JMP S1

FIN:

MOV AX, 4C00H

INT 21H

END START

Page 22: Examens_Microprocesseur-Microcontrolleur.pdf

Université Sidi Mohamed Ben Abdellah Faculté des Sciences et Techniques

Département Génie Industriel

Master ST en Génie Industriel

Examen de Microprocesseur & Microcontrôleur 2010-2011

PARTIE I :

1. Rappeler brièvement tous les registres du 80x86 en précisant le rôle de chacun des

registres.

2. Donner le mode d’adressage de l’instruction suivante et indiquer les étapes de

l’exécution : AND AX, [BX+SI+7]

3. Pourquoi les segments de la mémoire ont une taille de 64 Ko ?

4. Donner l’architecture de l’espace mémoire en précisant les adresses et le mode

d’adressage du microcontrôleur 80C535.

5. Quelle est la différence entre un registre général est un SFR ?

6. Citer 3 exemples de registres généraux et 3 exemples de registres SFR. PARTIE II :

Écrire un programme en assembleur qui permet de réaliser les opérations suivantes :

1. Saisie de quatre caractères au clavier

2. Comparaison des quatre caractères saisis

3. Affichage du caractère dont le code ASCII et le plus grand

L’opération 1 doit être réalisée par un sous programme.

NB : Le code ASCII du caractère saisi est mis dans AL par le CPU

Page 23: Examens_Microprocesseur-Microcontrolleur.pdf

Université Sidi Mohamed Ben Abdellah Faculté des Sciences et Techniques

Département Génie Industriel

PARTIE III :

On considère une diode LED connectée à la sortie 7 du port 1 du

microcontrôleur 80C535. On souhaite faire clignoter, sans arrêt, la diode suivant deux

périodes différentes. Le choix de la période se fait à l’aide d’une commande externe

(interrupteur) connectée à l’entrée 7 du port 4.

Écrire un programme à charger dans le microcontrôleur, qui offre le deux

possibilités suivantes selon le mode de fonctionnement précédemment décrit :

Si l’interrupteur est à l’état haut on choisit la période 1

Si l’interrupteur est à l’état bas on choisit la période 2

• Période 1 : durée de l’allumage (extinction) est de l’ordre de 65.5 ms

• Période 2 : durée de l’allumage (extinction) est de l’ordre de 32.80 ms

Justifier le choix des valeurs à mettre dans les registres pour avoir la période voulue.

Page 24: Examens_Microprocesseur-Microcontrolleur.pdf

Université Sidi Mohamed Ben Abdellah Faculté des Sciences et Techniques

Département Génie Industriel

Solution: PARTIE II :

DOSSEG

.MODEL SMALL

.CODE

START:

MOV DL, 00H

MOV CX, 04H

BOUCLE: CALL SAISIE

CMP DL, AL

JA SAUT

MOV DL, AL

SAUT:

LOOP BOUCLE

MOV AH, 02H

INT 21H

MOV AX, 4C00H

INT 21H

SAISIE PROC NEAR

MOV AH, 01H

INT 21H

RET

SAISIE ENDP

END START

Page 25: Examens_Microprocesseur-Microcontrolleur.pdf

Université Sidi Mohamed Ben Abdellah Faculté des Sciences et Techniques

Département Génie Industriel

PARTIE III :

Solution 1:

CPU 80515 INCLUDE stddef51 USING bank0 SEGMENT code ORG 0000H START: MOV R7, #80H BOUCLE : CPL P1.7 CALL ATTENTE

JB P4.7 START MOV R7, #40H

SJMP BOUCLE ATTENTE : SAUT2: MOV R6, #00H SAUT1: DJNZ R6, SAUT1

DJNZ R7, SAUT2 RET

END

Bas Haut P4.7

CPL P1.7

R7← 80H

ATTENTE

Début

R7← 40H

Page 26: Examens_Microprocesseur-Microcontrolleur.pdf

Université Sidi Mohamed Ben Abdellah Faculté des Sciences et Techniques

Département Génie Industriel

Solution 2:

CPU 80515 INCLUDE stddef51 USING bank0 SEGMENT code ORG 0000H START:

CPL P1.7 JB P4.7 HAUT

CALL ATTENTE2 SJMP BAS

HAUT : CALL ATTENTE1 BAS : SJMP START

ATTENTE1 :

MOV R7, #80H SAUT2: MOV R6, #00H SAUT1: DJNZ R6, SAUT1

DJNZ R7, SAUT2 RET

ATTENTE2 : MOV R7, #40H

SAUT4: MOV R6, #00H SAUT3: DJNZ R6, SAUT3

DJNZ R7, SAUT4 RET

END

P4.7

CPL P1.7

ATTENTE1

Début

ATTENTE2

Page 27: Examens_Microprocesseur-Microcontrolleur.pdf

Université Sidi Mohamed Ben Abdellah Faculté des Sciences et Techniques

Département Génie Industriel

Master ST en Génie Industriel

Examen de rattrapage de Microprocesseur & Microcontrôleur 2010-2011

EXERCICE I : Écrire le programme assembleur qui exécute les opérations suivantes :

• Créer le tableau : 01h, 00h, 02h, 00h, 03h, 00h, 04h, 00h. • Compter le nombre de valeurs nulles. • Mettre ce nombre dans le registre AX puis dans la pile.

EXERCICE II : Soit le programme du microcontrôleur 80C535 suivant :

CPU 80515 INCLUDE stddef51 USING bank0 SEGMENT code ORG 0000H START : mov R6, #30h mov 35h, #2Fh mov P1, #FFh mov @R0, #50h nbr : orl AR6, #01010101B cpl P1 cjne R6, #04, nbr sjmp start END

1. Donner la signification de chaque instruction. 2. Calculer la durée du programme sachant que le cycle machine est de l’ordre de 1µs.

Page 28: Examens_Microprocesseur-Microcontrolleur.pdf

Université Sidi Mohamed Ben Abdellah Faculté des Sciences et Techniques

Département Génie Industriel

Solution : EXERCICE I :

DOSSEG

.MODEL SMALL

.STACK 0100H

.DATA

T1 DB 01H, 00H, 02H, 00H, 03H, 00H, 04H, 00H

.CODE

START:

MOV AX, @DATA

MOV DS, AX

MOV AH, 00H

MOV BX, OFFSET T1

MOV AL, 08H

MOV CX, AL

SORTIE: CMP [BX], 00H

JNZ S1

JMP S2

S1: DEC AX

S2: INC BX

LOOP SORTIE

PUSH AX

MOV AX, 4C00H

INT 21H

END START

Page 29: Examens_Microprocesseur-Microcontrolleur.pdf

Université Sidi Mohamed Ben Abdellah Faculté des Sciences et Techniques

Département Génie Industriel

EXERCICE II : CPU 80515 ; Préciser le type de CPU (instruction relative à l’utilisation la

; Liste de commande spécifique au processeur)

INCLUDE stddef51 ; Définition des SFR

USING bank0 ; La banque de registres utilisée

SEGMENT code ;Positionnement du compteur d’adresse sur la zone mémoire

ORG 0000H ; Adresse de début du programme (1ère commande à partir de 0000H)

; Programme principal START: mov R6, #30h ; Mettre 30H dans le reistreR6

mov 35h, #2Fh ; Charger l’adresse 35 de la mémoire par ; La constante 2FH

mov P1, #FFh ; Affecter la valeur FFH au port 1

mov @R0, #50h ; Mettre la constante 50H dans ; L’emplacement mémoire adressé par R0

nbr : orl AR6, #01010101B ; Stocker le résultat de l’opération logique ; Ou dans R6

cpl P1 ; Complémenter le port 1

cjne R6, #04, nbr ; Comparer R6 avec la valeur 04 si il n’est ; pas égaux sauter à nbr

SJMP START ; Saut à l’adresse de START

END

Page 30: Examens_Microprocesseur-Microcontrolleur.pdf

Université Sidi Mohamed Ben Abdellah Faculté des Sciences et Techniques

Département Génie Industriel

Master ST en Génie Industriel

Contrôle continu Microprocesseur & Microcontrôleur 2011-2012

1. Détailler les étapes de l’exécution des deux instructions suivantes en précisant le mode d’adressage :

MOV AX, var

AND AX, [SI+6]

2. Citer tous les registres du 80x86 en indiquant brièvement le rôle de chacun.

3. Écrire le programme assembleur qui réalise les opérations suivantes : • Créer la série de valeurs hexadécimales suivantes dans la zone

mémoire :

1001h, 0000h, 2002h, 0000h, A003h, 0000h, 1F04h, 0000h.

• Compter le nombre de valeurs non nulles dans cette série (lire les données à partir de la mémoire).

• Ranger ce nombre dans la pile.

Page 31: Examens_Microprocesseur-Microcontrolleur.pdf

Université Sidi Mohamed Ben Abdellah Faculté des Sciences et Techniques

Département Génie Industriel

Solution:

EXERCICE 3:

DOSSEG

.MODEL SMALL

.STACK 0100H

.DATA

T1 DW 1001H, 0000H, 2002H, 0000H, 0A003H, 0000H, 1F04H, 0000H

.CODE

START:

MOV AX, @DATA

MOV DS, AX

MOV AH, 00H

MOV BX, OFFSET T1

MOV AL, 8

MOV CX, AX

SORTIE: CMP [BX], 0000H

JNE S1

DEC AL

S1: ADD BX, 2

LOOP SORTIE

MOV AX, 4C00H

INT 21H

END START

Page 32: Examens_Microprocesseur-Microcontrolleur.pdf

Université Sidi Mohamed Ben Abdellah Faculté des Sciences et Techniques

Département Génie Industriel

Master ST en Génie Industriel

Examen de Microprocesseur & Microcontrôleur 2011-2012 Exercice I :

1. Quelle est la différence entre une interruption matérielle et une interruption logicielle ?

2. Donner les étapes de traitement d’une interruption matérielle 3. Pour un microcontrôleur 80C535, préciser l’emplacement dans la mémoire des

bases (banks) de registres généraux en donnant leur nombre. 4. Donner quelques exemples de registres SFR.

Exercice II : Faire un programme en assembleur 80x86 qui affiche les lettres de l’alphabet en minuscule et en majuscule comme le montre cet exemple :

a A b B c C … z Z

L’affichage du caractère doit être traité sous forme d’un sous programme.

Exercice III :

On considère une diode LED connectée à la sortie 7 du port 1 du

microcontrôleur 80C535. On souhaite faire clignoter, sans arrêt, la diode selon la

période suivante :

• durée de l’allumage est de l’ordre de 33.55 s

• durée de l’extinction est de l’ordre de 32.80 ms

1. donner l’ordinogramme de commandes du programme principal

2. donner l’ordinogramme de commandes des sous programmes réalisant

l’allumage et l’extinction (justifier le choix des valeurs à charger dans les

registres)

3. écrire le programme en assembleur 80515.

Page 33: Examens_Microprocesseur-Microcontrolleur.pdf

Université Sidi Mohamed Ben Abdellah Faculté des Sciences et Techniques

Département Génie Industriel

EXERCICE II:

Solution1 :

DOSSEG

.MODEL SMALL

.CODE

START:

MOV AL, 61H

SAUT:

MOV DL, AL

CALL AFFICHAGE

ADD DL, 20H

CALL AFFICHAGE

INC AL

CMP AL, 7AH

JBE SAUT

MOV AX, 4C00H

INT 21H

AFFICHAGE PROC NEAR

MOV AH, 02H

INT 21H

RET

AFFICHAGE ENDP

END START

Solution2 :

DOSSEG

.MODEL SMALL

.CODE

START:

MOV AL, 61H

SAUT:

MOV DL, AL

CALL AFFICHAGE

AND DL, 0DFH

CALL AFFICHAGE

ADD AL, 20H

INC AL

CMP AL, 7AH

JBE SAUT

MOV AX, 4C00H

INT 21H

AFFICHAGE PROC NEAR

MOV AH, 02H

INT 21H

RET

AFFICHAGE ENDP

END START

Page 34: Examens_Microprocesseur-Microcontrolleur.pdf

Université Sidi Mohamed Ben Abdellah Faculté des Sciences et Techniques

Département Génie Industriel

Exercice III :

1. Programme principal

ATTENTE2

CPL P1.7

P1.7← 0B

Début

ATTENTE1

2.2. Attente2 : 32,80

Non

Oui

Non R6← R6 - 1 R6 = 0

R6← 00H

R7← 40H

Début

R7← R7 - 1 R7 = 0

Oui

Retour au programme

2.1. Attente1 : 33,55 s

Non

Oui

Non R6← R6 - 1 R6 = 0

R6← 00H

R7← 80H

Début

R7← R7 - 1 R7 = 0

Oui

Retour au programme

R5← 00H

Oui

Non R5← R5 - 1 R5 = 0

Page 35: Examens_Microprocesseur-Microcontrolleur.pdf

Université Sidi Mohamed Ben Abdellah Faculté des Sciences et Techniques

Département Génie Industriel

3.

CPU 80515

INCLUDE stddef51 USING bank0 SEGMENT code ORG 0000H START:

MOV P1.7, #0B CALL ATTENTE1

CPL P1.7 CALL ATTENTE2

SJMP START ATTENTE1 :

MOV R7, #80H SAUT3: MOV R6, #00H

SAUT2: MOV R5, #00H SAUT1: DJNZ R5, SAUT1

DJNZ R6, SAUT2 DJNZ R7, SAUT3 RET

ATTENTE2 : MOV R7, #40H

SAUT5: MOV R6, #00H SAUT4: DJNZ R6, SAUT4

DJNZ R7, SAUT5 RET

END

Page 36: Examens_Microprocesseur-Microcontrolleur.pdf

Université Sidi Mohamed Ben Abdellah Faculté des Sciences et Techniques

Département Génie Industriel

Examen de rattrapage de Microprocesseur & Microcontrôleur 2011-2012

EXERCICE I : EXERCICE II :

Page 37: Examens_Microprocesseur-Microcontrolleur.pdf

Université Sidi Mohamed Ben Abdellah Faculté des Sciences et Techniques

Département Génie Industriel

Exercice Supplémentaire :

On considère 8 diodes LED connectées sorties du port P1.

On souhaite faire défiler, sans arrêt, les 8 diodes suivant deux périodes

différentes.

Le choix du sens du défilement se fait à l’aide d’un interrupteur qui commande

le bit 6 du port 4

• Si l’interrupteur est à l’état haut on choisit le défilement à droite.

• Si l’interrupteur est à l’état bas on choisit le défilement à gauche.

Le choix de la période d’allumage se fait à l’aide d’une commande externe

(interrupteur) connectée à l’entrée 7 du port 4.

• Si l’interrupteur est à l’état haut on choisit la période 1

• Si l’interrupteur est à l’état bas on choisit la période 2

o Période 1 : durée de l’allumage (extinction) est de l’ordre de 65.5 ms

o Période 2 : durée de l’allumage (extinction) est de l’ordre de 32.80 ms

Écrire un programme à charger dans le microcontrôleur, qui réalise les

fonctions décrit précédemment.

Page 38: Examens_Microprocesseur-Microcontrolleur.pdf

Université Sidi Mohamed Ben Abdellah Faculté des Sciences et Techniques

Département Génie Industriel

Solution CPU 80515 INCLUDE stddef51 USING bank0 SEGMENT code ORG 0000H START: MOV A, #FEH SAUT3: MOV R7, #80H SAUT4 : MOV P1, A CALL ATTENTE

JB P4.6 SAUT1 RL A SJMP SAUT2

SAUT1 : RR A SAUT2 : JB P4.7, SAUT3

MOV R7, #40H SJMP SAUT4 ATTENTE : S2: MOV R6, #00H S1: DJNZ R6, S1

DJNZ R7, S2 RET

END

Gauche Droite

Bas Haut P4.7

P1← A

R7← 80H

ATTENTE

Début

R7← 40H

A← 11111110B

P4.6

RL A

RR A

Page 39: Examens_Microprocesseur-Microcontrolleur.pdf

Université Sidi Mohamed Ben Abdellah Faculté des Sciences et Techniques

Département Génie Industriel

Résumé des registres du 80x86

Registres généraux : ce sont des registres à usage multiples, ils seront utilisés pour stocker des résultats intermédiaires AX : un accumulateur qui sert essentiellement aux opérations arithmétique et aux entrées/sorties. BX : est un registre d’indexage, il est utilisé lors de l’accès à une zone mémoire sous forme de tableau, il représente l’indice de ce tableau CX : Sert de compteur pour itérations dans les boucles et les opérations sur les chaînes DX : est un accumulateur auxiliaire

Registres de segment : servent souvent pour spécifier, lors d’une écriture où lecture, le segment de mémoire ou il faut effectuer l’opération. CS (Code Segment) : c’est le bloc de mémoire qui contient le programme ou le code en cours d’exécution DS (Data Segment) : la zone mémoire où se trouvent les données du programme SS (Stack Segment) : Zone de la pile dans la quelle la CPU stocke des données relatives aux opérations utilisant la pile ; y compris les appels de procédures et les interruptions ES (Extra Segment) : un segment supplémentaire pouvant recevoir des données.

Registre d’index : indiquent généralement l’adresse physique que l’on souhaite atteindre. DI (Destination Pointer) : il pointe sur la destination dans un segment, Souvent ES, où le CPU exécute une écriture. SI (Source Index) : il pointe sur la source dans un segment, souvent DS, où le CPU exécute une lecture SP (Stack Pointer) : il contient l’offset de l’adresse dans une zone de pile. C’est un pointeur pile BP (Base Pointer) : c’est un registre pointeur de base utilisé généralement avec le

registre SS.

Page 40: Examens_Microprocesseur-Microcontrolleur.pdf

Université Sidi Mohamed Ben Abdellah Faculté des Sciences et Techniques

Département Génie Industriel

Registre de travail : IP (Instruction Pointer) : Ce registre est associé au registre de segment CS pour

indiquer la prochaine instruction à exécuter. Ce registre ne pourra jamais être modifié

directement par les instructions de saut, par les programmes et par les interruptions.

Registre de flags (PSW) : appelé aussi registre condition, constitue des drapeaux (flags) qui indiquent certains états particuliers. Ces bits indicateurs peuvent être testés pour déterminer la suite du déroulement du programme. CF : il sera mis à 1 s’il’ y a eu retenue lors de la dernière instruction arithmétique. PF : l’indicateur mis à 1 si le résultat d’une opération contient un nombre pair de bits 1. AF : c’est la retenue de poids 24 utilisée lors d’opérations arithmétiques décimales. ZF : il sera mis à 1 si le résultat d’une instruction arithmétique à donné zéro. SF : il sera mis à 1 si le résultat d’une instruction à donné un nombre négatif. OF : il sera mis à 1 si le résultat d’une addition de 2 nombres positifs donne un nombre négatif est inversement. DF : est un indicateur utilisé lors de la manipulation de chaînes de caractère. IF : autorise ou non la prise en compte des interruptions externes masquables. TF : assure la visualisation du contenu des registres et le fonctionnement pas à pas. Le bit est positionné à 1.

X X X X OF DF IF TF SF ZF X AF X PF X CF

Page 41: Examens_Microprocesseur-Microcontrolleur.pdf

Université Sidi Mohamed Ben Abdellah Faculté des Sciences et Techniques

Département Génie Industriel

JEU D'INSTRUCTIONS DU 8086/8088

INSTRUCTIONS ARITHMETIQUES

ADD ADC INC AAA DAA

SUB SBB DEC NEG CMP AAS DAS

MUL IMUL AAM

DIV IDIV AAD

CBW CWD

Addition Addition avec retenue Incrémentation de 1 Ajustement ASCII pour l'addition Ajustement BCD pour l'addition Soustraction Soustraction avec retenue Décrémentation de 1 Complément à 2 Comparaison Ajustement ASCII pour la soustraction Ajustement BCD pour la soustraction Multiplication non signée Multiplication signée Ajustement ASCII pour la multiplication Division non signée Division signée Ajustement ASCII pour la division Conversion d'un octet en mot Conversion d'un mot en double mot

INSTRUCTIONS DE TRAITEMENT DES BITS

Fonctions logiques :

CMP NOT AND OR

XOR TEST

Décalages :

SHL SAL SHR SAR

Rotations :

ROL ROR RCL RCR

Comparaison Inversion logique ET logique OU inclusif OU exclusif ET logique sans résultat (positionne les indicateurs) Décalage logique à gauche Décalage arithmétique à gauche Décalage logique à droite Décalage arithmétique à droite Rotation à gauche Rotation à droite Rotation à gauche, via le bit de carry Rotation à droite, via le bit de carry

Page 42: Examens_Microprocesseur-Microcontrolleur.pdf

Université Sidi Mohamed Ben Abdellah Faculté des Sciences et Techniques

Département Génie Industriel

INSTRUCTIONS DE BRANCHEMENT

Branchements conditionnels : Indicateurs

JE/JZ JNE/JNZ

JC JNC JO

JNO JS

JNS JP/JPE

JNP/JPO Arithmétique non signée

JA/ JNBE JAE/JNB JB/JNAE JBE/JNA

Arithmétique signée

JG/JNLE JGE/JNL JL/JNGE JLE/JNG

Branchements inconditionnels :

JMP CALL RET

Boucles :

LOOP LOOPE/LOOPZ

LOOPNE/LOOPNZ JCXZ

Interruptions :

INT INTO IRET

Si égal / si zéro Si pas égal / si pas zéro Si carry (retenue) Si pas carry (retenue) Si overflow (débordement) Si pas overflow (débordement) Si signe (négatif) Si pas de signe (positif) Si parité / si parité paire Si pas de parité / si parité impaire Si supérieur / si pas inférieur ni égal Si supérieur ou égal / si pas inférieur Si inférieur / si pas supérieur ni égal Si inférieur ou égal / si pas supérieur Si plus grand / si pas plus petit ni égal Si plus grand ou égal / si pas plus petit Si plus petit / si pas plus grand ni égal Si plus petit ou égal / si pas plus grand Saut inconditionnel Appel de sous-programme Retour vers le programme principal Boucle Boucle si égal / si zéro Boucle si pas égal / si pas zéro Branchement si CX = 0 Interruption Interruption si overflow Retour d'interruption

Page 43: Examens_Microprocesseur-Microcontrolleur.pdf

Université Sidi Mohamed Ben Abdellah Faculté des Sciences et Techniques

Département Génie Industriel

INSTRUCTIONS DE MOUVEMENTS DE DONNEES

Général :

MOV PUSH POP

XCHG XLAT

Adresses :

LEA LDS LES

Indicateurs :

LAHF SAHF

PUSHF POPF

Entrées – sorties :

IN OUT

Transfert Chargement de la pile Déchargement de la pile Echange Translation d'octet Chargement de l'adresse effective Chargement de pointeur au moyen de DS Chargement de pointeur au moyen de ES Transfert des indicateurs dans AH Rangement de AH dans les indicateurs Chargement des indicateurs dans la pile Déchargement des indicateurs de la pile Entrée de mot ou d'octet Sortie de mot ou d'octet

INSTRUCTIONS DE TRAITEMENT DES CHAINES

MOVSB/MOVSW REP

STOSB /STOSW LODSB/LODSW CMPSB/CMPSW

REPE/REPZ REPNE/REPNZ SCASB/SCASW

Déplacement de chaîne Répétition Rangement de chaîne Chargement de chaîne Comparaison de chaîne Répétition tant qu'égal à zéro Répétition tant que différent de zéro Balayage d'une chaîne

Page 44: Examens_Microprocesseur-Microcontrolleur.pdf

Université Sidi Mohamed Ben Abdellah Faculté des Sciences et Techniques

Département Génie Industriel

TABLE CODE ASCII

Décimal Hexa Binaire Caractère Décimal Hexa Binaire Caractère 000 00 0000000 NUL 032 20 0100000 ESPACE 001 01 0000001 SOH 033 21 0100001 ! 002 02 0000010 STX 034 22 0100010 " 003 03 0000011 ETX 035 23 0100011 # 004 04 0000100 EOT 036 24 0100100 $ 005 05 0000101 ENQ 037 25 0100101 % 006 06 0000110 ACK 038 26 0100110 & 007 07 0000111 BEL 039 27 0100111 ' 008 08 0001000 BS 040 28 0101000 ( 009 09 0001001 HT 041 29 0101001 ) 010 0A 0001010 LF 042 2A 0101010 * 011 0B 0001011 VT 043 2B 0101011 + 012 0C 0001100 FF 044 2C 0101100 , 013 0D 0001101 CR 045 2D 0101101 - 014 0E 0001110 SO 046 2E 0101110 . 015 0F 0001111 SI 047 2F 0101111 / 016 10 0010000 DLE 048 30 0110000 0 017 11 0010001 DC1 049 31 0110001 1 018 12 0010010 DC2 050 32 0110010 2 019 13 0010011 DC3 051 33 0110011 3 020 14 0010100 DC4 052 34 0110100 4 021 15 0010101 NAK 053 35 0110101 5 022 16 0010110 SYN 054 36 0110110 6 023 17 0010111 ETB 055 37 0110111 7 024 18 0011000 CAN 056 38 0111000 8 025 19 0011001 EM 057 39 0111001 9 026 1A 0011010 SUB 058 3A 0111010 : 027 1B 0011011 ESC 059 3B 0111011 ; 028 1C 0011100 FS 060 3C 0111100 < 029 1D 0011101 GS 061 3D 0111101 = 030 1E 0011110 RS 062 3E 0111110 > 031 1F 0011111 US 063 3F 0111111 ?

Décimal Hexa Binaire Caractère Décimal Hexa Binaire Caractère 064 40 1000000 @ 096 60 1100000 ` 065 41 1000001 A 097 61 1100001 a 066 42 1000010 B 098 62 1100010 b 067 43 1000011 C 099 63 1100011 c 068 44 1000100 D 100 64 1100100 d 069 45 1000101 E 101 65 1100101 e 070 46 1000110 F 102 66 1100110 f 071 47 1000111 G 103 67 1100111 g 072 48 1001000 H 104 68 1101000 h 073 49 1001001 I 105 69 1101001 i 074 4A 1001010 J 106 6A 1101010 j 075 4B 1001011 K 107 6B 1101011 k 076 4C 1001100 L 108 6C 1101100 l 077 4D 1001101 M 109 6D 1101101 m 078 4E 1001110 N 110 6E 1101110 n 079 4F 1001111 O 111 6F 1101111 o 080 50 1010000 P 112 70 1110000 p 081 51 1010001 Q 113 71 1110001 q 082 52 1010010 R 114 72 1110010 r 083 53 1010011 S 115 73 1110011 s 084 54 1010100 T 116 74 1110100 t 085 55 1010101 U 117 75 1110101 u 086 56 1010110 V 118 76 1110110 v 087 57 1010111 W 119 77 1110111 w 088 58 1011000 X 120 78 1111000 x 089 59 1011001 Y 121 79 1111001 y 090 5A 1011010 Z 122 7A 1111010 z 091 5B 1011011 [ 123 7B 1111011 { 092 5C 1011100 \ 124 7C 1111100 | 093 5D 1011101 ] 125 7D 1111101 } 094 5E 1011110 ^ 126 7E 1111110 ~ 095 5F 1011111 _ 127 7F 1111111 DEL

Page 45: Examens_Microprocesseur-Microcontrolleur.pdf

Université Sidi Mohamed Ben Abdellah Faculté des Sciences et Techniques

Département Génie Industriel

JEU D’INSTRUCTIONS DU 8051

Page 46: Examens_Microprocesseur-Microcontrolleur.pdf

Université Sidi Mohamed Ben Abdellah Faculté des Sciences et Techniques

Département Génie Industriel

Page 47: Examens_Microprocesseur-Microcontrolleur.pdf

Université Sidi Mohamed Ben Abdellah Faculté des Sciences et Techniques

Département Génie Industriel

Page 48: Examens_Microprocesseur-Microcontrolleur.pdf

Université Sidi Mohamed Ben Abdellah Faculté des Sciences et Techniques

Département Génie Industriel