Travaux pratiques
Microprocesseur
Electronique numérique
Encadré par :
Réalisé par :
LAFKIHI Mohamed
2
TP MICROPROCESSEUR
3. Pour exécuter le programme, cliquer sur emulate (ou appuyer sur F5).
4. Vous pouvez cliquer sur single step (ou appuyer sur F8) pour exécuter le
programme pas à pas.
5. Vous pouvez cliquer sur step back (ou appuyer sur F6) pour revenir en arrière.
6. Essayez, modifiez, expérimentez jusqu'à avoir les idées parfaitement claires sur le
fonctionnement de ce programme.
7. Que fait l’instruction MOV ?
Il déplace une valeur d’un registre à un autre.
3
TP MICROPROCESSEUR
Rechercher dans « l’aide » de ‘EMU8086’ l’instruction adéquate pour chacune des opérations
suivantes :
• Addition
• Soustraction
• Multiplication
• Division
2. Modifier vos programmes pour faire les calculs sur des opérandes, écrits
manuellement dans les mémoires 200H et 210H, le résultat doit être enregistré
dans l’adresse 220H.
3. Réécrire les programmes pour faire des calculs sur des opérandes de tailles
16bits.
4
TP MICROPROCESSEUR
org 100h
MOV AL, 9h
MOV AH, 3h
CMP AL, AH
JA etiq
ret
etiq:
XCHG AL, AH
ret
5
TP MICROPROCESSEUR
Org 100h
MOV AL, 2h
MOV AH, 7h
CMP AL, AH
JB etiq
MOV [200h], AH
ret
etiq:
MOV [200h], AH
ret
3. Dans les mêmes programmes, faite varier les différentes instructions de
branchement conditionnels.
4. Commenter et expliquer les instructions et les résultats des programmes.
Mettre des valeurs quelconques dans les cases mémoires entre [200H] et [210H].
6
TP MICROPROCESSEUR
7
TP MICROPROCESSEUR
ret
tempo1 ENDP
tempo2 PROC
MOV CX, 100h
boucle2:
NOP
LOOP boucle2
ret
tempo2 ENDP
Pour contrôler le périphérique qui est composé de 12 lampes, on envoie alors un mot sur le
port. Seuls les bits 0 à 11 de ce mot sont utilisés par le port, les autres bits sont ignorés. La
situation du périphérique indiquée sur la figure en dessus est obtenue avec l’envoie du code
suivant sur le port 4.
8
TP MICROPROCESSEUR
OUT 4, AX
Boucle1:
MOV AX, 010010010010b
OUT 4, AX
CALL tempo
MOV AX, 000000000000b
OUT 4, AX
DEC BX
CMP BX, 0h
JA boucle1
Ret
Ret
tempo PROC
MOV CX, 50h
Boucle2:
NOP
LOOP boucle2
Ret
Tempo ENDP
2. En utilisant les procédures de temporisation, écrire un programme assembleur
reflétant le fonctionnement réel des feux de circulation pendant la journée (mode
jour).
Org 100h
MOV BX, 5Oh
Boucle1:
MOV AX, 001100001100b
OUT 4, A
CALL tempo
MOV AX, 001010001010b
OUT 4, A
9
TP MICROPROCESSEUR
CALL tempo
MOV AX, 100001100001b
OUT 4, A
CALL tempo
MOV AX, 010001010001b
OUT 4, A
CALL tempo
DEC BX
CMP BX, 0h
JA boucle1
ret
ret
tempo PROC
MOV CX, 50h
Boucle2:
NOP
LOOP boucle2
Ret
Tempo ENDP
10
TP MICROPROCESSEUR
Les valeurs qui peuvent être envoyées sont résumées dans le tableau suivant :
11
TP MICROPROCESSEUR
1 00000001 Avancer
2 00000010 Tourner à gauche
3 00000011 Tourner à droite
4 00000100 Examiner*
5 00000101 Allumer la lampe
6 00000110 Eteindre la lampe
(*) : Examiner un objet (obstacle) en utilisant un capteur. Lorsque le robot termine cette tâche,
le résultat est mis dans le registre ‘data’ et le bit 0 du registre statuts est mis à 1.
Le second port (port 10) est un registre de données ‘data’. Ce registre est mis à jour après que
le robot ait terminé l’examen de l’obstacle :
Le port 11 est un registre d'état. On lit les valeurs de ce port pour déterminer l'état du robot.
Chaque bit de ce robot a une propriété spécifique :
12
TP MICROPROCESSEUR
13
TP MICROPROCESSEUR
14