Vous êtes sur la page 1sur 5

I.

Introduction :
Le 8086 à aujourd’hui presque 40 ans d’existence, commercialisé officiellement le 8 juin 1978,
par l’entreprise Intel au-alentour de 40 000 Dinars Algériens de l’époque Il est toujours
commercialisé de nos jours et ne coute pas plus de 500 Dinars Algérien. Avec 133 instructions
le 8086 d’Intel implémente une architecture CISC (Complexe Instruction Set Computer) un
espace adressable d’un méga octet et des manipulations de données codées sur 16 bits Ce
processeur a défini l’architecture de base utilisée jusqu’à nos jours dans les processeurs
modernes de la firme Intel. En effet, les processeurs Intel peuvent fonctionner en mode dit réel
en activant un environnement de programmation identique à celui du 8086.

La programmation en langage machine nécessite la connaissance au préalable des registres


internes du processeur utilisé. En effet, en langage assembleur chaque instruction fait référence
à une action élémentaire effectuée par le processeur. Il est mentionné pour chaque action
qu’une des données manipulées doit obligatoirement se trouver au sein d’un registre du
processeur. Nous présentons les différents registres du 8086 chacun dans sa catégorie.

2. But de TP :
- apprendre comment faire quelques programmes de base d’assembleur on utilisant l’émulateur
de microprocesseur 8068.

3. Manipulations :
a) Manipulation des registres généraux :
a-1 :
en écrit un programme permettant la soustraction de deux valeurs en hexa et stocker le résultat
dans un registre de notre choix :

MOV AX, 10h

MOV BX, 07h

SUB AX, BX

a-2:
en écrit un programme permettant d’affecter une valeur à AX et de la doubler par la suite

MOV AX, 5

MOV BX, 2
MUL AX

a-3:
en écrit un programme permettant d’affecter 06h à AX et 03h à BX et par la suite permuter les
valeurs de AX et BX en utilisant la pile :

MOV AX, 06h

MOV BX, 03h

PUSH AX

PUSH BX

POP AX

POP BX

a-4
en écrit un programme permettant de calculer le carré d’une valeur en utilisant uniquement le
registre AX.

MOV AX, 2

MOV AX, 2

MUL AX

b) Comparaison, saut, condition et boucle :


b-1 :
en écrit un programme permettant de mettre les valeurs suivant 06h et 09h successivement
dans AX et BX et comparer le contenu de AX et BX et de mettre le registre DX à 0001 si AX>BX
ou de mettre DX à 0000 si AX<BX.

MOV AX, 06h

MOV BX, 09h

CMP AX, BX

Jl K1

JG K2
K1:

MOV DX, 0001

K2:

MOV DX, 0000

b-2 :
en écrit un programme permettant de affecter la valeur 05h dans AX , si le contenu de AX est
pair mettre DX à 0002 sinon à 0001

MOV AX, 005h

TEST AX, 1

JZ PAIR

JNZ IMPAIR

PAIR:

MOV DX, 0002

IMPAIR:

MOV DX, 0001

b-3:
en écrit un programme permettant de mettre le contenu d’AX et BX 8 fois dans la pile. Les
valeurs initiales d’AX et BX sont 04h et 07h successivement

MOV AX, 04h

MOV BX, 07h

MOV CX, 8

ET:

Push AX

Push BX

LOOP ET

b-4 :
en écrit un programme permettant de calculer la factorielle de la valeur 05h, et de mettre le
résultat dans le registre AX

MOV AX, 9

MOV DX, AX

DEC AX

MOV CX, AX

INC AX

SAUT :

DEC DX

MUL DX

LOOP SAUT

c) Affichage d’un caractère :


en écrit un programme permettant d’afficher un ensemble de caractère alphanumérique

MOV CX, Var

Et:

Int 21h

Loop et

var dw ?

Vous aimerez peut-être aussi