Introduction au langage assembleur
8086
Objectifs
- Comprendre les instructions de base du
processeur 8086.
- Apprendre à utiliser des instructions
fondamentales avec des exemples simples.
- Explorer les concepts clés tels que le transfert, les
calculs arithmétiques, les comparaisons et les sauts
conditionnels.
MOV : Transfert de données
• Syntaxe : MOV destination, source
• Description : Copie la valeur de 'source' vers
'destination'.
Exemple :
• MOV AX, 5 ; AX = 5
• MOV BX, AX ; BX = 5
ADD : Addition
• Syntaxe : ADD destination, source
• Description : Ajoute la valeur de 'source' à
'destination'.
Exemple :
• MOV AX, 3 ; AX = 3
• ADD AX, 4 ; AX = 7
SUB : Soustraction
• Syntaxe : SUB destination, source
• Description : Soustrait la valeur de 'source' de
'destination'.
Exemple :
• MOV AX, 9 ; AX = 9
• SUB AX, 2 ; AX = 7
MUL : Multiplication
• Syntaxe : MUL source
• Description : Multiplie 'AX' par 'source'. Le
résultat est stocké dans 'AX'.
Exemple :
• MOV AX, 3 ; AX = 3
• MOV BL, 2 ; BL = 2
• MUL BL ; AX = 6 (3 * 2)
DIV : Division
• Syntaxe : DIV source
• Description : Divise 'AX' par 'source'. Le quotient
est stocké dans 'AL' et le reste dans 'AH'.
Exemple :
• MOV AX, 8 ; AX = 8
• MOV BL, 2 ; BL = 2
• DIV BL ; AL = 4 (quotient), AH = 0 (reste)
PUSH et POP : Gestion de la pile
• PUSH : Place une valeur dans la pile.
• POP : Récupère une valeur de la pile.
Exemples :
• MOV AX, 5 ; AX = 5
• PUSH AX ; Empile AX
• MOV AX, 0 ; AX = 0
• POP AX ; AX = 5
CMP : Comparaison
• Syntaxe : CMP operand1, operand2
• Description : Compare 'operand1' à 'operand2'
en effectuant une soustraction (sans modifier les
opérands).
Exemple :
• MOV AX, 5 ; AX = 5
• CMP AX, 3 ; Compare AX avec 3
JG, JL : Sauts conditionnels
• Syntaxe :
• JG label ; Jump if Greater
• JL label ; Jump if Lesser
Exemple :
• MOV AX, 5 ; AX = 5
• CMP AX, 3 ; Compare AX avec 3
• JG greater ; Saut si AX > 3
• greater:
• ; Code si AX > 3
TEST et ZF (Zero Flag)
• Syntaxe : TEST operand1, operand2
• Description : Effectue un ET logique entre les opérands
et met à jour les indicateurs (ZF, etc.).
• Exemple :
• MOV AX, 1 ; AX = 1
• TEST AX, AX ; ZF = 0 car AX != 0
• Zero Flag (ZF) :
• ZF = 1 : Le résultat est zéro.
• ZF = 0 : Le résultat est non nul.