You are on page 1of 35

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

0100H

.DATA
T1 DB 32H, 0AH, 89H, 47H, BCH, FFH, 11H
T2 DB 84H, BAH, 90H, B7H, 6AH, F0H, 00H
.CODE
START:
MOV AX,

@DATA

MOV DS,

AX

MOV AH,

00H

MOV BX,

OFFSET T1

MOV CX,

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

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

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 :
MOV AX, AAh
ADD AX, 11h
ADC AX, 45h
Prciser le contenu de AX.

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

.MODEL SMALL

MOV AL, VAR3

.STACK 0100 H

S2:

.DATA

PUSH AX
VAR1 DB 01H

MOV AL, VAR1

VAR2 DB 04H

ADD AL, VAR2

VAR3 DB 03H

ADD AL, VAR3

.CODE

PUSH AX

START:

MOV BX, OFFSET VAR1

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

S1:

INT 21H

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

.MODEL SMALL

.MODEL SMALL

.CODE

.CODE

START:

START:
MOV BL, 61H

MOV AL, 61H

SAUT:

SAUT:

MOV DL, BL

MOV DL, AL

CALL AFFICHAGE

CALL AFFICHAGE

CALL TRANSFORMATION

CALL TRANSFORMATION

CALL AFFICHAGE

CALL AFFICHAGE

INC BL

INC AL

CMP BL, 7AH

CMP AL, 7AH

JBE SAUT

JBE SAUT

MOV AX, 4C00H

MOV AX, 4C00H

INT 21H

INT 21H
AFFICHAGE PROC NEAR

AFFICHAGE PROC NEAR

MOV AH, 02H

MOV AH, 02H

INT 21H

INT 21H

RET

RET

AFFICHAGE ENDP

AFFICHAGE ENDP

TRANSFORMATION PROC NEAR

TRANSFORMATION PROC NEAR

AND DL, 0DFH

AND DL, 0DFH

RET

RET

TRANSFORMATION ENDP

TRANSFORMATION ENDP

END START

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
JMP S1
FIN:
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,

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

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

CPL P1.7

ATTENTE

END
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 :

80515
stddef51
bank0
code
0000H
CPL P1.7
JB P4.7 HAUT
CALL ATTENTE2
SJMP BAS
CALL ATTENTE1
SJMP START

Dbut

ATTENTE1 :
SAUT2:
SAUT1:

CPL P1.7

MOV R7, #80H


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

P4.7

ATTENTE2 :
SAUT2:
SAUT1:

END

MOV R7, #40H


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

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 :

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

END
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

; Prciser le type de CPU (instruction relative { lutilisation la


; liste de commande spcifique au proccesseur)

INCLUDE

stddef51

; Dfinition des SFR

USING

bank0

; La banque de registres utilise

SEGMENT

code

; Positionnemet du compteur dadresse sur la zone mmoire

ORG

0000H

; Adresse de dbut du programme (1re commande partir


de 0000H

Programme principal
START:

nbr :

SJMP START
END

mov R6, #30h

; Mettre 30H dans le reistreR6

mov 35h, #2Fh

; Charger ladresse 35 de la mmoire par


; la constante 2FH

mov P1, #FFh

; Affecter la valeur FFH au port 1

mov @R0, #50h

; Mettre la constante 50H dans


; lemplacement mmoire adress par R0

orl AR6, #01010101B

; Stocker le rsultat de lopration logique


; Ou dans R6

cpl P1

; Complmenter le port 1

cjne R6, #04, nbr

; 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, A003H, 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

.MODEL SMALL

.MODEL SMALL

.CODE

.CODE

START:

START:
MOV BL, 61H

MOV AL, 61H

SAUT:

SAUT:

MOV DL, BL

MOV DL, AL

CALL AFFICHAGE

CALL AFFICHAGE

AND DL, 0DFH

AND DL, 0DFH

CALL AFFICHAGE

CALL AFFICHAGE

INC BL

ADD AL, 20H

CMP BL, 7AH

INC AL

JBE SAUT

CMP AL, 7AH

MOV AX, 4C00H


INT 21H

JBE SAUT
MOV AX, 4C00H

AFFICHAGE PROC NEAR

INT 21H

MOV AH, 02H

AFFICHAGE PROC NEAR

INT 21H

MOV AH, 02H

RET

INT 21H

AFFICHAGE ENDP

RET

END START

AFFICHAGE ENDP
END START

Universit Sidi Mohamed Ben Abdellah


Facult des Sciences et Techniques
Dpartement Gnie Industriel
Rsum de cours
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.

You might also like