Documenti di Didattica
Documenti di Professioni
Documenti di Cultura
microprocesseur 8086
Comme tout programme, un programme crit en assembleur comprend des dfinitions de donnes
et des instructions, qui scrivent chacune sur une ligne de texte.
1. Les donnes sont dclares par des directives, mots clef spciaux que comprend
lassembleur.
2. Les directives qui dclarent des donnes sont regroupes dans le segment de donnes, qui
est dlimit par les directives SEGMENT et ENDS.
3. Les instructions sont places dans un autre segment, le segment de code.
4. La directive ASSUME est toujours prsente.
5. La premire instruction du programme (dans le segment dinstruction) doit toujours tre
repre par une tiquette. Le fichier doit se terminer par la directive END avec le nom de
ltiquette de la premire instruction (ceci permet dindiquer lditeur de liens quelle est la
premire instruction excuter lorsque lon lance le programme).
6. Les points-virgules indiquent des commentaires.
On dclare les variables laide de directives. Lassembleur attribue a chaque variable une adresse.
Dans le programme, on repre les variables grce leur nom.
Les noms des variables (comme les tiquettes) sont composs dune suite de 31 caractres au
maximum, commenant obligatoirement par une lettre. Le nom peut comporter des majuscules, des
minuscules, des chiffres, plus les caractres @, ? et _.
Lors de la dclaration dune variable, on peut lui affecter une valeur initiale.
Variables de 8 ou 16 bits
Les directives DB (Define Byte) et DW (Define Word) permettent de dclarer des
variables de respectivement 1 ou 2 octets.
1
Exemple dutilisation :
data SEGMENT
entree DW 15 ; 2 octets initialises a 15
sortie DW ? ; 2 octets non initialises
cle DB ? ; 1 octet non initialise
nega DB -1 ; 1 octet initialise a -1
data ENDS
Les valeurs initiales peuvent tre donnes en hexadcimal (constante termine par H) ou en binaire
(termine par b) :
data SEGMENT
A DW 0F0AH ; en hexa
B DB 01110000b ; en binaire
data ENDS
champ champ
code opration code oprande
Selon la manire dont la donne est spcifie, c'est dire selon le mode d'adressage de la donne,
une instruction sera code par 1, 2, 3 ou 4 octets.
1- Types d'instructions
Instructions d'affectation
Dclenchent un transfert de donnes entre l'un des registres du processeur et la mmoire principale.
transfert CPUMmoire Principale (MP) (= lecture en MP)
transfert CPUMmoire Principale (MP) (= criture en MP)
Instructions arithmtiques et logiques
Le code de l'instruction est donn en hexadcimal dans la deuxime colonne. La colonne suivante
prcise le nombre d'octets ncessaires pour coder l'instruction complte (oprande inclus). On note
valeur une valeur sur 16 bits, et adr une adresse sur 16 bits galement.
2
Code Taille en
Symbole Signification
Operation Octets
MOV AX, valeur B8 3 AX valeur
AX contenu de l'adresse
MOV AX, [ adr ] A1 3
adr.
MOV [ adr ], AX A3 3 range AX l'adresse adr.
ADD AX, valeur 05 3 AX AX + valeur
ADD AX, [ adr ] 03 06 4 AX AX + contenu de adr.
SUB AX, valeur 2D 3 AX AX - valeur
SUB AX, [ adr ] 2B 06 4 AX AX - contenu de adr.
INC AX 40 1 AX AX + 1
DEC AX 48 1 AX AX - 1
MUL BX 2 AX AX * BX
Fin du programme (retour au DOS) :
MOV AH, 4C B4 4C 2
INT 21 CD 21 2
.
Retour au DOS
A la fin d'un programme en assembleur, on souhaite en gnral que l'interprteur de commandes du
DOS reprenne le contrle du PC. Pour cela, on utilisera la squence de deux instructions (voir
tableauu 2.1) :
MOV AH, 4C
INT 21