Académique Documents
Professionnel Documents
Culture Documents
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
• Soustraction
org 100h
MOV AH, 9H
MOV AL, 3H
SUB AH, AL
ret
• Multiplication
org 100h
MOV AL, 9H
MOV CL, 3H
MUL CL
ret
4
TP MICROPROCESSEUR
• Division
org 100h
MOV AL, 9H
MOV CL, 3H
DIV CL
ret
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.
• Addition
org 100h
MOV AH, [200H]
MOV AL, [210H]
ADD AH, AL
MOV [220H], AH
ret
• Soustraction
org 100h
MOV AH, [200H]
MOV AL, [210H]
SUB AH, AL
MOV [220H], AH
ret
• Multiplication
org 100h
MOV AL, [200H]
MOV CL, [210H]
MUL CL
MOV [220H], AX
ret
5
TP MICROPROCESSEUR
• Division
org 100h
MOV AL, [200H]
MOV CL, [210H]
DIV CL
MOV [220H], AL
ret
3. Réécrire les programmes pour faire des calculs sur des opérandes de tailles
16bits.
• Addition
org 100h
MOV AX, 0197H
MOV BX, 7910H
ADD AX, BX
ret
• Soustraction
org 100h
MOV AX, 0197H
MOV BX, 7190H
SUB AX, BX
ret
• Multiplication
org 100h
MOV AX, 07H
MOV CX, 19H
MUL CX
ret
6
TP MICROPROCESSEUR
• Division
org 100h
MOV AX, 81H
MOV CX, 9H
DIV CX
ret
4. Indiquer dans un tableau le type d’adressage effectué.
7
TP MICROPROCESSEUR
org 100h
MOV AL, 9H
MOV AH, 3H
CMP AL, AH
JA etiq
ret
etiq:
XCHG AL, AH
ret
2. Écrire un programme permettant de comparer AH avec AL.
• Si AH < AL mettre son contenu dans la case mémoire d’adresse [200H]
• Si AH > AL mettre son contenu dans la case mémoire d’adresse [210H]
8
TP MICROPROCESSEUR
Org 100h
MOV AL, 2H
MOV AH, 7H
CMP AL, AH
JB etiq
MOV [200H], AH
ret
etiq:
MOV [210H], 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.
9
TP MICROPROCESSEUR
10
TP MICROPROCESSEUR
ret
boucle:
CMP [BX], AH
JB min
INC BX
JMP teste
min:
MOV AH, [BX]
INC BX
JMP teste
4. Écrire un programme assembleur qui permet de chercher la valeur maximale des
cases mémoires entre [200H…205H].
org 100h
MOV BX, 200H
MOV AH, 0H
teste:
CMP BX, 205H
JB boucle
ret
boucle:
CMP [BX], AH
JA max
INC BX
JMP teste
max:
MOV AH, [BX]
INC BX
JMP teste
11
TP MICROPROCESSEUR
12
TP MICROPROCESSEUR
13
TP MICROPROCESSEUR
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.
14
TP MICROPROCESSEUR
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, AX
CALL tempo
MOV AX, 001010001010b
OUT 4, AX
CALL tempo
MOV AX, 100001100001b
OUT 4, AX
CALL tempo
MOV AX, 010001010001b
OUT 4, AX
CALL tempo
DEC BX
CMP BX, 0h
15
TP MICROPROCESSEUR
JA boucle1
ret
ret
tempo PROC
MOV CX, 50h
Boucle2:
NOP
LOOP boucle2
Ret
Tempo ENDP
16
TP MICROPROCESSEUR
Les valeurs qui peuvent être envoyées sont résumées dans le tableau suivant :
(*) : 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.
17
TP MICROPROCESSEUR
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 :
18
TP MICROPROCESSEUR
ToG PROC
MOV AX, 2d
OUT 9, AX
ret
ToG ENDP
ToD PROC
MOV AX, 3d
OUT 9, AX
ret
ToD ENDP
Exa PROC
MOV AX, 4d
OUT 9, AX
ret
Exa ENDP
All PROC
MOV AX, 5d
19
TP MICROPROCESSEUR
OUT 9, AX
ret
All ENDP
Ete PROC
MOV AX, 6d
OUT 9, AX
ret
Ete ENDP
20
TP MICROPROCESSEUR
org 100h
CALL Exa
IN AX, 10h
teste:
CMP AX, 0d
JE etiqAva
CMP AX, 8d
JE etiqALL
CMP AX, 7d
ret
etiqAva:
CALL Ava
JMP teste
etiqToD:
CALL ToD
JMP teste
etiqAll:
CALL All
CALL ToG
JMP teste
21
TP MICROPROCESSEUR
etiqEte:
CALL Ete
CALL ToG
JMP teste
ret
Ava PROC
MOV AX, 1d
OUT 9, AX
ret
Ava ENDP
ToG PROC
MOV AX, 2d
OUT 9, AX
ret
ToG ENDP
ToD PROC
MOV AX, 3d
OUT 9, AX
ret
ToD ENDP
Exa PROC
MOV AX, 4d
OUT 9, AX
ret
Exa ENDP
22
TP MICROPROCESSEUR
All PROC
MOV AX, 5d
OUT 9, AX
ret
All ENDP
Ete PROC
MOV AX, 6d
OUT 9, AX
ret
Ete ENDP
23