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.