Vous êtes sur la page 1sur 48

Universit Sidi Mohamed Ben Abdellah

Facult des Sciences et Techniques


Dpartement Gnie Industriel
MST Gnie Industriel
Examen d'informatique industrielle 2005 2006

Problme I
crire un programme en assembleur qui effectue les oprations suivantes :
1. Chargement dans la mmoire des donnes suivantes

32h, 0Ah, 89h, 47h, BCh, FFh, 11h


84h, BAh, 90h, B7h, 6Ah, F0h, 00h

2. Comparaison entre deux lments de la mme colonne.

3. Affectation du nombre le plus grand la pile.


La comparaison doit commencer partir de la 1re colonne :
32h, 0Ah, 89h, 47h, BCh, FFh, 11h
84h, BAh, 90h, B7h, 6Ah, F0h, 00h

1re colonne

dernire colonne

4. Retour au DOS

Problme II

Linterfaage entre un afficheur LCD et le port parallle dun PC est ralis comme le montre la
figure ci-dessous :
Port Parallle
D0
D1
D2
D3
D4
D5
D6
D7

D0
D1
D2
D3
D4
D5
D6
D7

Afficheur LCD
Vcc
E

R/W

RS

Vcc

strobe
Select
printer

Avec :
E (Enable) marche sur front descendant permettant la saisie de la donne afficher.
RS (Registre Select) travaille au niveau bas validant lafficheur.
a. Faire un organigramme qui permet dafficher la srie 00h FFh. Laffichage de chaque
donne dure 1s. Justifier les diffrentes tapes ainsi que les valeurs dinitialisation des
registres.
b. Traduire lorganigramme en langage C.

Universit Sidi Mohamed Ben Abdellah


Facult des Sciences et Techniques
Dpartement Gnie Industriel
Solution

Problme I :
DOSSEG

.MODEL SMALL
.STACK
.DATA

0100H

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

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

.CODE

START:

MOV AX,

@DATA

MOV AH,

00H

MOV CX,

MOV DS,

MOV BX,

AX

OFFSET T1

BOUCLE: MOV AL, [BX]


CMP AL, [BX+7]
JA SORTIE

MOV AL, [BX+7]

SORTIE: PUSH AX
INC BX

LOOP BOUCLE

MOV AX,

INT 21H

END START

4C00H

Universit Sidi Mohamed Ben Abdellah


Facult des Sciences et Techniques
Dpartement Gnie Industriel
MST Gnie Industriel
Examen d'informatique industrielle 2005 2006
crire un programme en assembleur qui effectue les oprations suivantes :
1. Saisie au clavier deux caractres.

2. Raliser la somme des codes ASCII des deux caractres.


3. Afficher le caractre correspondant.

Les 3 oprations doivent tre rptes 5 fois, avant deffectuer le retour au DOS.
On mettra lopration 1 en sous programme.

Universit Sidi Mohamed Ben Abdellah


Facult des Sciences et Techniques
Dpartement Gnie 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

Universit Sidi Mohamed Ben Abdellah


Facult des Sciences et Techniques
Dpartement Gnie Industriel
MST Gnie Industriel
Examen d'informatique industrielle 2007 2008

Le code ASCII reprsente chaque caractre sur 8 bits (1 octet). Le chiffre de poids fort

est toujours gal 0. Les codes des lettres alphabtiques minuscules se suivent et
varient de 61h 7Ah. Lorsque le 6me bit passe 0 le caractre 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 caractres minuscules en caractres majuscules en les affichant
un par un.
3. Retourner au DOS.

On mettra la transformation dun caractre et son affichage sous forme de sous


programme.

Universit Sidi Mohamed Ben Abdellah


Facult des Sciences et Techniques
Dpartement Gnie Industriel
Solution:

DOSSEG

.MODEL SMALL
.STACK
.CODE

START:

0100H

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

Universit Sidi Mohamed Ben Abdellah


Facult des Sciences et Techniques
Dpartement Gnie Industriel
MST Gnie Industriel
Examen d'informatique industrielle 2008 2009

1. Prciser pour chacune des instructions suivantes le mode dadressage :


MOV AL, [000B]
ADD AL, C4h
MOV [BX], 00h
MOV AX, 0FFh

2. Effectuer les oprations suivantes, sur 4 bits, et prciser les valeurs des indicateurs
CF, ZF, SF, OF, et PF :
1010 + 0101

et

0111 + 0001

3. Quels sont les rles des registres suivants :


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

crire dans la mmoire 18h, 11h, 29h, 04h, 20h


Ranger dans la pile la valeur minimale du tableau (lecture partir de la
mmoire)

Universit Sidi Mohamed Ben Abdellah


Facult des Sciences et Techniques
Dpartement Gnie 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

Universit Sidi Mohamed Ben Abdellah


Facult des Sciences et Techniques
Dpartement Gnie Industriel
MST en Gnie Industriel
Examen de rattrapage d'informatique industrielle 2008 2009

1. Dtailler le principe de tous les modes dadressage du 80x86.


2. Faire le programme assembleur suivant :

Crer le tableau suivant dans la mmoire : 01 00 02 00 03 00 04 00


Ranger dans la pile le nombre de valeurs nulles de ce tableau (lire les
donnes partir du tableau)

Universit Sidi Mohamed Ben Abdellah


Facult des Sciences et Techniques
Dpartement Gnie 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

Universit Sidi Mohamed Ben Abdellah


Facult des Sciences et Techniques
Dpartement Gnie Industriel
Master ST en Gnie 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. Dtailler les tapes de lexcution des deux instructions suivantes en prcisant


le mode dadressage :
MOV BX, AX
MOV AX, 03h
AND AX, [SI+6]

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


4. Faire le programme assembleur suivant
Crer le tableau suivant dans la mmoire : 01 00 02 00 03 00 04 00

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


donnes partir du tableau).

Universit Sidi Mohamed Ben Abdellah


Facult des Sciences et Techniques
Dpartement Gnie 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

Universit Sidi Mohamed Ben Abdellah


Facult des Sciences et Techniques
Dpartement Gnie 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

Universit Sidi Mohamed Ben Abdellah


Facult des Sciences et Techniques
Dpartement Gnie Industriel
Master ST en Gnie Industriel
Examen de rattrapage de microprocesseur 2008-2009

1. Donner la position des indicateurs CF, ZF, SF, PF et OF la fin de lexcution des
instructions suivantes :

Prciser le contenu de AX.

MOV AX, AAh


ADD AX, 11h
ADC AX, 45h

2. Quelle est la procdure suivie par le processeur lors de lappel dun sous
programme passage de paramtre par la pile.

3. Faire le programme assembleur suivant:

Crer le tableau suivant dans la mmoire :

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 lments des
colonnes qui donnent comme rsultat la valeur 6.

Universit Sidi Mohamed Ben Abdellah


Facult des Sciences et Techniques
Dpartement Gnie 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

Universit Sidi Mohamed Ben Abdellah


Facult des Sciences et Techniques
Dpartement Gnie Industriel
Master ST en Gnie Industriel
Contrle N2 Microprocesseur & Microcontrleur 2009 - 2010

Exercice I :

1. Citer les registres dindex et prciser leur rle

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

3. Pourquoi la mmoire est-elle divise en plusieurs segments de 64 ko chacun ?

Exercice II :

1. crire le programme assembleur suivant:

Charger le data segment par 3 valeurs diffrentes


Comparer les et mettre la pus grande valeur dans la pile
Additionner les 3 valeurs de la mmoire et empiler le rsultat
Empiler les tris valeurs de la mmoire

2. Illustrer, l'aide d'un schma la situation de la pile (Valeurs, position SP)

Universit Sidi Mohamed Ben Abdellah


Facult des Sciences et Techniques
Dpartement Gnie Industriel
Solution:

Exercice II :

DOSSEG

JA S2

.STACK 0100 H

S2:

.MODEL SMALL
.DATA

MOV AL, VAR3


PUSH AX

MOV AL, VAR1

VAR1 DB 01H

ADD AL, VAR2

VAR2 DB 04H
.CODE

ADD AL, VAR3

VAR3 DB 03H

PUSH AX

MOV BX, OFFSET VAR1

START:

MOV AX, @DATA

MOV CX, 3

MOV DS, AX

S3:

MOV AH, 00H

MOV AL,[BX]

MOV AL, VAR1

PUSH AX

CMP AL, VAR2

INC BX

JA S1

LOOP S3

MOV AL, VAR2

MOV AX, 4C00H

INT 21H

S1:

CMP AL, VAR3

END START

SP

F6h

SP

F8h

SP

FAh

SP

FCh

SP

FEh

SP 100h

0003
0004
0001
0008
0003

Universit Sidi Mohamed Ben Abdellah


Facult des Sciences et Techniques
Dpartement Gnie Industriel
Master ST en Gnie Industriel
Examen Microprocesseur & Microcontrleur 2009 - 2010

Exercice I :
1. Quelle est la diffrence entre une interruption matrielle et une interruption
logicielle ?

2. Donner les tapes de traitement dune interruption matrielle

3. Indiquer le type du mode dadressage des instructions suivantes en expliquant la


mthode de saisie de la donne
ADC AX, 50h
INC BX
MOV DX, [SI+5]

Exercice II :
Faire un programme en assembleur qui affiche les lettres de lalphabet en minuscule et
en majuscule comme le montre lexemple ci-dessous :
aAbBcCzZ

Mettre sous forme de sous programmes


Laffichage dun caractre
La transformation du caractre

Universit Sidi Mohamed Ben Abdellah


Facult des Sciences et Techniques
Dpartement Gnie Industriel
Solution:
Exercice II :
DOSSEG

DOSSEG

.CODE

.CODE

.MODEL SMALL
START:

MOV BL, 61H

.MODEL SMALL
START:

SAUT:

SAUT:

MOV DL, BL

MOV DL, AL

CALL AFFICHAGE

CALL AFFICHAGE

CALL TRANSFORMATION

CALL TRANSFORMATION

CALL AFFICHAGE

CALL AFFICHAGE

INC BL

INC AL

JBE SAUT

JBE SAUT

CMP BL, 7AH

MOV AX, 4C00H

INT 21H

MOV AL, 61H

AFFICHAGE PROC NEAR


MOV AH, 02H

INT 21H

CMP AL, 7AH

MOV AX, 4C00H


INT 21H

AFFICHAGE PROC NEAR


MOV AH, 02H

RET

INT 21H

AFFICHAGE ENDP

AFFICHAGE ENDP

TRANSFORMATION PROC NEAR

TRANSFORMATION PROC NEAR

RET

AND DL, 0DFH


RET

TRANSFORMATION ENDP

TRANSFORMATION ENDP

AND DL, 0DFH

END START

RET

END START

Universit Sidi Mohamed Ben Abdellah


Facult des Sciences et Techniques
Dpartement Gnie Industriel
Master ST en Gnie Industriel
Contrle continu Microprocesseur & Microcontrleur 2010-2011

Exercice I :
1. Prciser le rle de chacun des registres suivants :
CS, DS, SP et IP

2. Quel est lintrt du registre flag (PSW) ?

Exercice II :
1. crire un programme en assembleur qui excute les oprations suivantes:
Mettre dans la pile les valeurs ci-dessous dans cet ordre :
18h, 11h, 29h, 04h, 20h

Lire les donnes partir de la pile en les comparants. Ranger la valeur la plus
grande dans le registre DX

2. Illustrer, l'aide d'un schma la situation de la pile aprs lexcution de


linstruction dempilement. Prciser les diffrentes valeurs de SP.

Universit Sidi Mohamed Ben Abdellah


Facult des Sciences et Techniques
Dpartement Gnie 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
FIN:

JMP S1

MOV AX, 4C00H

INT 21H

END START

Universit Sidi Mohamed Ben Abdellah


Facult des Sciences et Techniques
Dpartement Gnie Industriel
Master ST en Gnie Industriel
Examen de Microprocesseur & Microcontrleur 2010-2011

PARTIE I :
1. Rappeler brivement tous les registres du 80x86 en prcisant le rle de chacun des
registres.

2. Donner le mode dadressage de linstruction suivante et indiquer les tapes de


lexcution : AND AX, [BX+SI+7]

3. Pourquoi les segments de la mmoire ont une taille de 64 Ko ?

4. Donner larchitecture de lespace mmoire en prcisant les adresses et le mode


dadressage du microcontrleur 80C535.

5. Quelle est la diffrence entre un registre gnral est un SFR ?

6. Citer 3 exemples de registres gnraux et 3 exemples de registres SFR.

PARTIE II :

crire un programme en assembleur qui permet de raliser les oprations suivantes :


1. Saisie de quatre caractres au clavier

2. Comparaison des quatre caractres saisis

3. Affichage du caractre dont le code ASCII et le plus grand


Lopration 1 doit tre ralise par un sous programme.

NB : Le code ASCII du caractre saisi est mis dans AL par le CPU

Universit Sidi Mohamed Ben Abdellah


Facult des Sciences et Techniques
Dpartement Gnie Industriel
PARTIE III :
On considre une diode LED connecte la sortie 7 du port 1 du

microcontrleur 80C535. On souhaite faire clignoter, sans arrt, la diode suivant deux
priodes diffrentes. Le choix de la priode se fait laide dune commande externe
(interrupteur) connecte lentre 7 du port 4.

crire un programme charger dans le microcontrleur, qui offre le deux

possibilits suivantes selon le mode de fonctionnement prcdemment dcrit :


Si linterrupteur est ltat haut on choisit la priode 1
Si linterrupteur est ltat bas on choisit la priode 2

Priode 1 : dure de lallumage (extinction) est de lordre de 65.5 ms

Priode 2 : dure de lallumage (extinction) est de lordre de 32.80 ms

Justifier le choix des valeurs mettre dans les registres pour avoir la priode voulue.

Universit Sidi Mohamed Ben Abdellah


Facult des Sciences et Techniques
Dpartement Gnie Industriel
Solution:

PARTIE II :
DOSSEG

.MODEL SMALL
.CODE

START:

MOV DL,
MOV CX,

00H
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

Universit Sidi Mohamed Ben Abdellah


Facult des Sciences et Techniques
Dpartement Gnie Industriel
PARTIE III :
Solution 1:
CPU
INCLUDE
USING
SEGMENT
ORG
START:
BOUCLE :

80515
stddef51
bank0
code
0000H

MOV R7, #80H


CPL P1.7
CALL ATTENTE
JB P4.7 START
MOV R7, #40H
SJMP BOUCLE

Dbut

R7 80H

ATTENTE :
SAUT2:
MOV R6, #00H
SAUT1:
DJNZ R6, SAUT1
DJNZ R7, SAUT2
RET
END

CPL P1.7

ATTENTE

R7 40H

Bas

P4.7

Haut

Universit Sidi Mohamed Ben Abdellah


Facult des Sciences et Techniques
Dpartement Gnie Industriel

Solution 2:

CPU
INCLUDE
USING
SEGMENT
ORG
START:

HAUT :
BAS :

ATTENTE1 :
SAUT2:
SAUT1:

ATTENTE2 :
SAUT4:
SAUT3:
END

80515
stddef51
bank0
code
0000H

CPL P1.7
JB P4.7 HAUT
CALL ATTENTE2
SJMP BAS
CALL ATTENTE1
SJMP START

Dbut

CPL P1.7

MOV R7, #80H


MOV R6, #00H
DJNZ R6, SAUT1
DJNZ R7, SAUT2
RET

MOV R7, #40H


MOV R6, #00H
DJNZ R6, SAUT3
DJNZ R7, SAUT4
RET

P4.7

ATTENTE1

ATTENTE2

Universit Sidi Mohamed Ben Abdellah


Facult des Sciences et Techniques
Dpartement Gnie Industriel
Master ST en Gnie Industriel
Examen de rattrapage de Microprocesseur & Microcontrleur
2010-2011

EXERCICE I :
crire le programme assembleur qui excute les oprations suivantes :
Crer 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 microcontrleur 80C535 suivant :
CPU
INCLUDE
USING
SEGMENT
ORG
START :

nbr :
END

80515
stddef51
bank0
code
0000H

mov R6, #30h


mov 35h, #2Fh
mov P1, #FFh
mov @R0, #50h
orl AR6, #01010101B
cpl P1
cjne R6, #04, nbr
sjmp start

1. Donner la signification de chaque instruction.


2. Calculer la dure du programme sachant que le cycle machine est de lordre de 1s.

Universit Sidi Mohamed Ben Abdellah


Facult des Sciences et Techniques
Dpartement Gnie 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

Universit Sidi Mohamed Ben Abdellah


Facult des Sciences et Techniques
Dpartement Gnie Industriel
EXERCICE II :
CPU

80515

INCLUDE

stddef51

; Prciser le type de CPU (instruction relative lutilisation la


; Liste de commande spcifique au processeur)
; Dfinition des SFR

USING

bank0

; La banque de registres utilise

ORG

0000H

; Adresse de dbut du programme (1re commande partir


de 0000H)

SEGMENT
;

code

;Positionnement du compteur dadresse sur la zone mmoire

Programme principal

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

; Mettre 30H dans le reistreR6

; Charger ladresse 35 de la mmoire par


; La constante 2FH

; Affecter la valeur FFH au port 1

; Mettre la constante 50H dans


; Lemplacement mmoire adress par R0

; Stocker le rsultat de lopration logique


; Ou dans R6

; Complmenter le port 1

; Comparer R6 avec la valeur 04 si il nest


; pas gaux sauter nbr

; Saut ladresse de START

Universit Sidi Mohamed Ben Abdellah


Facult des Sciences et Techniques
Dpartement Gnie Industriel
Master ST en Gnie Industriel
Contrle continu Microprocesseur & Microcontrleur 2011-2012

1. Dtailler les tapes de lexcution des deux instructions suivantes en prcisant


le mode dadressage :
MOV AX, var
AND AX, [SI+6]

2. Citer tous les registres du 80x86 en indiquant brivement le rle de chacun.

3. crire le programme assembleur qui ralise les oprations suivantes :


Crer la srie de valeurs hexadcimales suivantes dans la zone
mmoire :
1001h, 0000h, 2002h, 0000h, A003h, 0000h, 1F04h, 0000h.

Compter le nombre de valeurs non nulles dans cette srie (lire les
donnes partir de la mmoire).
Ranger ce nombre dans la pile.

Universit Sidi Mohamed Ben Abdellah


Facult des Sciences et Techniques
Dpartement Gnie 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

Universit Sidi Mohamed Ben Abdellah


Facult des Sciences et Techniques
Dpartement Gnie Industriel
Master ST en Gnie Industriel
Examen de Microprocesseur & Microcontrleur 2011-2012

Exercice I :
1. Quelle est la diffrence entre une interruption matrielle et une interruption
logicielle ?
2. Donner les tapes de traitement dune interruption matrielle
3. Pour un microcontrleur 80C535, prciser lemplacement dans la mmoire des
bases (banks) de registres gnraux en donnant leur nombre.
4. Donner quelques exemples de registres SFR.

Exercice II :

Faire un programme en assembleur 80x86 qui affiche les lettres de lalphabet en


minuscule et en majuscule comme le montre cet exemple :
aAbBcCzZ

Laffichage du caractre doit tre trait sous forme dun sous programme.

Exercice III :

On considre une diode LED connecte la sortie 7 du port 1 du

microcontrleur 80C535. On souhaite faire clignoter, sans arrt, la diode selon la

priode suivante :

dure de lallumage est de lordre de 33.55 s

dure de lextinction est de lordre de 32.80 ms

1. donner lordinogramme de commandes du programme principal

2. donner lordinogramme de commandes des sous programmes ralisant


lallumage et lextinction (justifier le choix des valeurs charger dans les
registres)

3. crire le programme en assembleur 80515.

Universit Sidi Mohamed Ben Abdellah


Facult des Sciences et Techniques
Dpartement Gnie Industriel

EXERCICE II:
Solution1 :

Solution2 :

DOSSEG

DOSSEG

.CODE

.CODE

.MODEL SMALL
START:

MOV AL, 61H

.MODEL SMALL
START:

SAUT:

SAUT:

MOV DL, AL

MOV DL, AL

CALL AFFICHAGE

CALL AFFICHAGE

ADD DL, 20H

AND DL, 0DFH

CALL AFFICHAGE

CALL AFFICHAGE

INC AL

ADD AL, 20H

JBE SAUT

CMP AL, 7AH

CMP AL, 7AH

MOV AX, 4C00H

INT 21H

MOV AL, 61H

AFFICHAGE PROC NEAR


MOV AH, 02H

INT 21H

RET

AFFICHAGE ENDP

END START

INC AL

JBE SAUT

MOV AX, 4C00H


INT 21H

AFFICHAGE PROC NEAR


MOV AH, 02H
INT 21H
RET

AFFICHAGE ENDP

END START

Universit Sidi Mohamed Ben Abdellah


Facult des Sciences et Techniques
Dpartement Gnie Industriel
Exercice III :
1. Programme principal
2.1. Attente1 : 33,55 s

Dbut

Dbut
P1.7 0B
R7 80H
ATTENTE1

R6 00H
CPL P1.7

2.2. Attente2 : 32,80


Dbut

ATTENTE2

R7 40H

R6 00H

R5 00H

R5 R5 - 1
R5 = 0

Oui

R6 R6 - 1
R6 = 0

Non

Non

R6 R6 - 1
R6 = 0

Oui

R7 R7 - 1
R7 = 0

Oui

Retour au
programme

Oui

R7 R7 - 1
R7 = 0

Oui

Retour au
programme

Non

Non

Non

Universit Sidi Mohamed Ben Abdellah


Facult des Sciences et Techniques
Dpartement Gnie Industriel
3.
CPU

80515

INCLUDE
USING
SEGMENT
ORG
START:

ATTENTE1 :
SAUT3:
SAUT2:
SAUT1:

ATTENTE2 :
SAUT5:
SAUT4:
END

stddef51
bank0
code
0000H

MOV P1.7, #0B


CALL ATTENTE1
CPL P1.7
CALL ATTENTE2
SJMP START
MOV R7, #80H
MOV R6, #00H
MOV R5, #00H
DJNZ R5, SAUT1
DJNZ R6, SAUT2
DJNZ R7, SAUT3
RET

MOV R7, #40H


MOV R6, #00H
DJNZ R6, SAUT4
DJNZ R7, SAUT5
RET

Universit Sidi Mohamed Ben Abdellah


Facult des Sciences et Techniques
Dpartement Gnie Industriel
Examen de rattrapage de Microprocesseur & Microcontrleur
2011-2012

EXERCICE I :
EXERCICE II :

Universit Sidi Mohamed Ben Abdellah


Facult des Sciences et Techniques
Dpartement Gnie Industriel
Exercice Supplmentaire :
On considre 8 diodes LED connectes sorties du port P1.

On souhaite faire dfiler, sans arrt, les 8 diodes suivant deux priodes

diffrentes.

Le choix du sens du dfilement se fait laide dun interrupteur qui commande

le bit 6 du port 4

Si linterrupteur est ltat haut on choisit le dfilement droite.


Si linterrupteur est ltat bas on choisit le dfilement gauche.

Le choix de la priode dallumage se fait laide dune commande externe

(interrupteur) connecte lentre 7 du port 4.

Si linterrupteur est ltat haut on choisit la priode 1


Si linterrupteur est ltat bas on choisit la priode 2

o Priode 1 : dure de lallumage (extinction) est de lordre de 65.5 ms

o Priode 2 : dure de lallumage (extinction) est de lordre de 32.80 ms


crire un programme charger dans le microcontrleur, qui ralise les

fonctions dcrit prcdemment.

Universit Sidi Mohamed Ben Abdellah


Facult des Sciences et Techniques
Dpartement Gnie Industriel

CPU
INCLUDE
USING
SEGMENT
ORG
START:

SAUT3:
SAUT4 :

SAUT1 :
SAUT2 :

Solution

80515
stddef51
bank0
code
0000H

MOV A, #FEH
MOV R7, #80H
MOV P1, A
CALL ATTENTE
JB P4.6 SAUT1
RL A
SJMP SAUT2
RR A
JB P4.7, SAUT3
MOV R7, #40H
SJMP SAUT4

Dbut

ATTENTE :
S2:
MOV R6, #00H
S1:
DJNZ R6, S1
DJNZ R7, S2
RET

A 11111110B
R7 80H

END

P1 A
ATTENTE
Gauche

P4.6

RL A

R7 40H

Bas

Droite
RR A

P4.7

Haut

Universit Sidi Mohamed Ben Abdellah


Facult des Sciences et Techniques
Dpartement Gnie Industriel
Rsum des registres du 80x86
Registres gnraux : ce sont des registres usage multiples, ils seront utiliss pour
stocker des rsultats intermdiaires
AX : un accumulateur qui sert essentiellement aux oprations arithmtique et aux
entres/sorties.
BX : est un registre dindexage, il est utilis lors de laccs une zone mmoire sous
forme de tableau, il reprsente lindice de ce tableau
CX : Sert de compteur pour itrations dans les boucles et les oprations sur les
chanes
DX : est un accumulateur auxiliaire

Registres de segment : servent souvent pour spcifier, lors dune criture o lecture,
le segment de mmoire ou il faut effectuer lopration.
CS (Code Segment) : cest le bloc de mmoire qui contient le programme ou le code
en cours dexcution
DS (Data Segment) : la zone mmoire o se trouvent les donnes du programme
SS (Stack Segment) : Zone de la pile dans la quelle la CPU stocke des donnes
relatives aux oprations utilisant la pile ; y compris les appels de procdures et les
interruptions
ES (Extra Segment) : un segment supplmentaire pouvant recevoir des donnes.

Registre dindex : indiquent gnralement ladresse physique que lon souhaite


atteindre.
DI (Destination Pointer) : il pointe sur la destination dans un segment, Souvent ES,
o le CPU excute une criture.
SI (Source Index) : il pointe sur la source dans un segment, souvent DS, o le CPU
excute une lecture
SP (Stack Pointer) : il contient loffset de ladresse dans une zone de pile. Cest un
pointeur pile
BP (Base Pointer) : cest un registre pointeur de base utilis gnralement avec le
registre SS.

Universit Sidi Mohamed Ben Abdellah


Facult des Sciences et Techniques
Dpartement Gnie Industriel
Registre de travail :
IP (Instruction Pointer) : Ce registre est associ au registre de segment CS pour
indiquer la prochaine instruction excuter. 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 tests
pour dterminer la suite du droulement du programme.
CF : il sera mis 1 sil y a eu retenue lors de la dernire instruction arithmtique.
PF : lindicateur mis 1 si le rsultat dune opration contient un nombre pair de bits
1.
AF : cest la retenue de poids 24 utilise lors doprations arithmtiques dcimales.
ZF : il sera mis 1 si le rsultat dune instruction arithmtique donn zro.
SF : il sera mis 1 si le rsultat dune instruction donn un nombre ngatif.
OF : il sera mis 1 si le rsultat dune addition de 2 nombres positifs donne un
nombre ngatif est inversement.
DF : est un indicateur utilis lors de la manipulation de chanes de caractre.
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

OF

DF

IF

TF

SF

ZF

AF

PF

CF

Universit Sidi Mohamed Ben Abdellah


Facult des Sciences et Techniques
Dpartement Gnie Industriel
JEU D'INSTRUCTIONS DU 8086/8088
INSTRUCTIONS ARITHMETIQUES
ADD
ADC
INC
AAA
DAA

Addition
Addition avec retenue
Incrmentation de 1
Ajustement ASCII pour l'addition
Ajustement BCD pour l'addition

SUB
SBB
DEC
NEG
CMP
AAS
DAS

Soustraction
Soustraction avec retenue
Dcrmentation de 1
Complment 2
Comparaison
Ajustement ASCII pour la soustraction
Ajustement BCD pour la soustraction

MUL
IMUL
AAM

Multiplication non signe


Multiplication signe
Ajustement ASCII pour la multiplication

DIV
IDIV
AAD

Division non signe


Division signe
Ajustement ASCII pour la division

CBW
CWD

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

Comparaison
Inversion logique
ET logique
OU inclusif
OU exclusif
ET logique sans rsultat (positionne les indicateurs)

SHL
SAL
SHR
SAR

Dcalage logique gauche


Dcalage arithmtique gauche
Dcalage logique droite
Dcalage arithmtique droite

ROL
ROR
RCL
RCR

Rotation gauche
Rotation droite
Rotation gauche, via le bit de carry
Rotation droite, via le bit de carry

Dcalages :

Rotations :

Universit Sidi Mohamed Ben Abdellah


Facult des Sciences et Techniques
Dpartement Gnie Industriel
INSTRUCTIONS DE BRANCHEMENT
Branchements conditionnels :
Indicateurs
JE/JZ
JNE/JNZ
JC
JNC
JO
JNO
JS
JNS
JP/JPE
JNP/JPO

Si gal / si zro
Si pas gal / si pas zro
Si carry (retenue)
Si pas carry (retenue)
Si overflow (dbordement)
Si pas overflow (dbordement)
Si signe (ngatif)
Si pas de signe (positif)
Si parit / si parit paire
Si pas de parit / si parit impaire

Arithmtique non signe


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

Si suprieur / si pas infrieur ni gal


Si suprieur ou gal / si pas infrieur
Si infrieur / si pas suprieur ni gal
Si infrieur ou gal / si pas suprieur

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

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

Branchements inconditionnels :
JMP
CALL
RET

Saut inconditionnel
Appel de sous-programme
Retour vers le programme principal

Boucles :
LOOP
LOOPE/LOOPZ
LOOPNE/LOOPNZ
JCXZ

Boucle
Boucle si gal / si zro
Boucle si pas gal / si pas zro
Branchement si CX = 0

Interruptions :
INT
INTO
IRET

Interruption
Interruption si overflow
Retour d'interruption

Universit Sidi Mohamed Ben Abdellah


Facult des Sciences et Techniques
Dpartement Gnie Industriel
INSTRUCTIONS DE MOUVEMENTS DE DONNEES
Gnral :
MOV
PUSH
POP
XCHG
XLAT

Transfert
Chargement de la pile
Dchargement de la pile
Echange
Translation d'octet

Adresses :
LEA
LDS
LES

Chargement de l'adresse effective


Chargement de pointeur au moyen de DS
Chargement de pointeur au moyen de ES

Indicateurs :
LAHF
SAHF
PUSHF
POPF

Transfert des indicateurs dans AH


Rangement de AH dans les indicateurs
Chargement des indicateurs dans la pile
Dchargement des indicateurs de la pile

Entres sorties :
IN
OUT

Entre 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

Dplacement de chane
Rptition
Rangement de chane
Chargement de chane
Comparaison de chane
Rptition tant qu'gal zro
Rptition tant que diffrent de zro
Balayage d'une chane

Universit Sidi Mohamed Ben Abdellah


Facult des Sciences et Techniques
Dpartement Gnie Industriel
TABLE CODE ASCII
Dcimal
000
001
002
003
004
005
006
007
008
009
010
011
012
013
014
015
016
017
018
019
020
021
022
023
024
025
026
027
028
029
030
031
Dcimal
064
065
066
067
068
069
070
071
072
073
074
075
076
077
078
079
080
081
082
083
084
085
086
087
088
089
090
091
092
093
094
095

Hexa
00
01
02
03
04
05
06
07
08
09
0A
0B
0C
0D
0E
0F
10
11
12
13
14
15
16
17
18
19
1A
1B
1C
1D
1E
1F
Hexa
40
41
42
43
44
45
46
47
48
49
4A
4B
4C
4D
4E
4F
50
51
52
53
54
55
56
57
58
59
5A
5B
5C
5D
5E
5F

Binaire
0000000
0000001
0000010
0000011
0000100
0000101
0000110
0000111
0001000
0001001
0001010
0001011
0001100
0001101
0001110
0001111
0010000
0010001
0010010
0010011
0010100
0010101
0010110
0010111
0011000
0011001
0011010
0011011
0011100
0011101
0011110
0011111
Binaire
1000000
1000001
1000010
1000011
1000100
1000101
1000110
1000111
1001000
1001001
1001010
1001011
1001100
1001101
1001110
1001111
1010000
1010001
1010010
1010011
1010100
1010101
1010110
1010111
1011000
1011001
1011010
1011011
1011100
1011101
1011110
1011111

Caractre
NUL
SOH
STX
ETX
EOT
ENQ
ACK
BEL
BS
HT
LF
VT
FF
CR
SO
SI
DLE
DC1
DC2
DC3
DC4
NAK
SYN
ETB
CAN
EM
SUB
ESC
FS
GS
RS
US
Caractre
@
A
B
C
D
E
F
G
H
I
J
K
L
M
N
O
P
Q
R
S
T
U
V
W
X
Y
Z
[
\
]
^
_

Dcimal
032
033
034
035
036
037
038
039
040
041
042
043
044
045
046
047
048
049
050
051
052
053
054
055
056
057
058
059
060
061
062
063
Dcimal
096
097
098
099
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127

Hexa
20
21
22
23
24
25
26
27
28
29
2A
2B
2C
2D
2E
2F
30
31
32
33
34
35
36
37
38
39
3A
3B
3C
3D
3E
3F
Hexa
60
61
62
63
64
65
66
67
68
69
6A
6B
6C
6D
6E
6F
70
71
72
73
74
75
76
77
78
79
7A
7B
7C
7D
7E
7F

Binaire
0100000
0100001
0100010
0100011
0100100
0100101
0100110
0100111
0101000
0101001
0101010
0101011
0101100
0101101
0101110
0101111
0110000
0110001
0110010
0110011
0110100
0110101
0110110
0110111
0111000
0111001
0111010
0111011
0111100
0111101
0111110
0111111
Binaire
1100000
1100001
1100010
1100011
1100100
1100101
1100110
1100111
1101000
1101001
1101010
1101011
1101100
1101101
1101110
1101111
1110000
1110001
1110010
1110011
1110100
1110101
1110110
1110111
1111000
1111001
1111010
1111011
1111100
1111101
1111110
1111111

Caractre
ESPACE
!
"
#
$
%
&
'
(
)
*
+
,
.
/
0
1
2
3
4
5
6
7
8
9
:
;
<
=
>
?
Caractre
`
a
b
c
d
e
f
g
h
i
j
k
l
m
n
o
p
q
r
s
t
u
v
w
x
y
z
{
|
}
~
DEL

Universit Sidi Mohamed Ben Abdellah


Facult des Sciences et Techniques
Dpartement Gnie Industriel
JEU DINSTRUCTIONS DU 8051

Universit Sidi Mohamed Ben Abdellah


Facult des Sciences et Techniques
Dpartement Gnie Industriel

Universit Sidi Mohamed Ben Abdellah


Facult des Sciences et Techniques
Dpartement Gnie Industriel

Universit Sidi Mohamed Ben Abdellah


Facult des Sciences et Techniques
Dpartement Gnie Industriel