TP 1
TP 1
TP 1
1-Le Micro-processeur :
Un microprocesseur : est un circuit intégré complexe caractérisé par une très grande intégration et doté
des facultés d'interprétation et d'exécution des instructions d'un programme. Il est chargé d’organiser les
tâches précisées par le programme et d’assurer leur exécution. Il doit aussi prendre en compte les
informations extérieures au système et assurer leur traitement. C’est le cerveau du système. A l’heure
actuelle, un microprocesseur regroupe sur quelques millimètres carrés des fonctionnalités toujours plus
complexes. Leur puissance continue de s’accroître et leur encombrement diminue régulièrement
respectant toujours, pour le moment, la fameuse loi de Moore.
2-1-Partie A :
Le programme :
Code machine
Segment IP Binaire Hexadécimale Programme Description
0050 : 0100 101110001100110000000000 B8CC00 MOV AX,00CC Transfer CC
vers AX
0050 : 0103 101110100011001100000000 BA3300 MOV DX,0033 Transfer 33
vers DX
0050 : 0106 10010000 90 HLT Ne rien à faire
Les étapes :
Etapes 1 2 3 4
Les Remarques :
• L’instruction MOV permet de transférer les données (un octet ou un mot) d’un registre à un autre
registre ou d'un registre à une case mémoire.
• On remarque qu’après chaque instruction DATS indiquer directement sur l’IP de l’instruction
suivant.
• On remarque aussi que dans la fenêtre de Registre que les registres AX et DX sera remplié par la
valeur 00CCh et 0033h comme on a programmé et ces valeurs restent constant parce que on ne les
pas modifiés.
• L’instruction HLT ne rien à faire.
2-2-Partie B :
1. Avant passe à l’étape suivant on doit cliquer sur « RESET » pour faire la remise à zéro.
2. Puit on clique sur « OK ».
Le programme :
Code machine
Segment IP Binaire Hexa Programme Description
0050 : 0010 101110000110011000000000 B86600 MOV AX,0066 Charger l’ACC
par 66H
0050 : 0013 101110110101010100000000 BB5500 MOV BX,0055 Charger BX par
55H
0050 : 0016 01010000 50 PUSH AX Stocker le
continu de AX
dans la pile
0050 : 0017 01010011 53 PUSH BX Stocker le
continu de BX
dans la pile
0050 : 0018 101110110000000000000000 BB0000 MOV BX,0000 Effacer le
continu de BX
0050 : 001B 101110000000000000000000 BB0000 MOV AX,0000 Effacer le
continu de AX
0050 : 001E 10000001111000101111101111111111 81E2FBFF AND DX,FFFB Et logique entre
DX et FFFB
0050 : 0022 01011011 5B POP BX Charger BX de la
pile par 0055
0050 : 0023 01011000 58 POP AX Charger AX de la
pile par 0066
Les Remarques :
L’instruction PUSH : L’instruction POP :
Elle permet d'empiler les registres du CPU Elle permet de dépiler les registres du CPU
sur le haut de la pile. sur le haut de la pile.
Exemple : Exemple :
• L’intérêt de la pile est d’emmagasine les donnes pour l’utilise Plus tard.
• La première valeur stocker dans la pile c’est la dernière valeur qui va sortie.
• Le pointeur SP change avec l’instruction « PUSH » et « POP » (lorsqu’on a utilisé PUSH et POP le
pointeur SP a changé sa valeur).
2-3-Partie C :
Le programme :
Code machine
Segment IP Binaire Hexa Programme Description
0050 : 0010 101110000110011000000000 B80400 MOV AX,0004 Remplie le registre AX
Addition
par le nombre 0004
0050 : 0103 101110110000010100000000 BB0500 MOV BX,0005 Remplie le registre BX
par le nombre 0005
0050 : 0106 0000001111011000 03D8 ADD BX, AX Ajouter à BX la valeur de
AX
Opération Logique
par Le contenu de AX
0050 : 0110 0010001111010011 23D3 AND DX, BX ET logique entre DX et AX
et le résultat dans DX
0050 : 0112 1000101111010000 8BD0 MOV DX, AX Remplie le registre DX
par Le contenu de AX
0050 : 0114 0000101111010011 0BD3 OR DX, BX OU logique entre DX et
BX et le résultat dans DX
0050 : 0116 1000101111010000 8BD0 MOV DX, AX Remplie le registre DX
par Le contenu de AX
0050 : 0118 0011001111010011 33D3 XOR DX, BX OU exclusif entre DX et
BX et le résultat dans DX
Comparaison
l'adresse dont la valeur
relative est (0005)
0050 : 012D 011101110000000000000100 7704 JA 0004 Si AX > 0015 saute vers
l'adresse dont la valeur
relative est (0004)
0050 : 012F 10010000 90 HLT Ne rien à faire
0050 : 0130 10010000 90 HLT Ne rien à faire
0050 : 0131 10010000 90 HLT Ne rien à faire
Les Remarques :
1 - L’instruction « CMP » va comparais la valeur AX avec la valeur 0015 et le résultat de la comparaison et
contenu dans le registre d'état FLAG.
5 - Conclusion :
• On a habitué à l'utilisation du kit DATS-8086 par l'écriture de diffère instruction Logique et
arithmétique.
• On a compris le principe d’exécution pas à pas pour lancer le programme.
• On a compris aussi l’avantage des registres dont le but est de recevoir des informations
spécifiques, notamment des adresses et des données stockées durant l'exécution d'un programme.
• On peut comparais entre deux valeurs souhaitées avec L’instruction « CMP ».
• Pour saut vers un IP selon la résulta de comparaison on peut utiliser ces instructions : « JB », « JE », « JA ».