Professional Documents
Culture Documents
Plan
1. Introduction
2. Les registres
3. Gestion de la mémoire
• Avantages :
Amélioration
– Augmentation de la fréquence d'horloge, de la largeur des bus
d'adresse et de données
– Ajout de nouvelles instructions et de registres.
2. Registres d'offset
Exemple
Les registres du 8086
3. Les registres de segment
Registres spécialisés dans l'adressage de segments (pages) de la
mémoire Centrale. Tout accès à la MC ne peut se faire qu'avec le
concours de l'un de ces quatre registres :
– CS : Code Segment pointe sur un segment qui contient les
instructions du programme exécuté. Travaille avec IP
Une case mémoire est repérée en moyen de deux quantités sur 16 bits :
.
1 - L’adresse de base d'un segment (registre de segment)
.
2 - Le déplacement ou offset dans ce segment (registre général)
Exemple :
l'adresse physique
31000h + 27EEh = 337EEh
La zone mémoire réservée à un programme utilisateur
après son chargement en mémoire
4. Adressage de la mémoire
Une seule des éventuelles opérandes d’une instruction peut être stockée
dans la mémoire. Son offset est calculé par la formule générale suivante :
Base = { BX, BP }
Index= { DI, SI }
déplacement = { Aucun, valeur 8 bit, valeur 16 bits)
Possibilité d’adressage très variés
Formule de L’offset Mode d'adressage Combinaisons possibles
Déplacement [d8]
Adressage direct [d16]
Base [BX]
[BP]
Adressage basé
Base +déplacement [BX]+[d8]
[BX]+[d16]
[BP]+[d8]
[BP]+[d16]
Index [DI]
[SI]
Adressage basé
MOV DX, [BX] ; copie dans DX le mot d'adresse DS:BX
MOV DX, TABLE[BX] ; copie dans DX le mot d'adresse S:(BX+TABLE)
MOV 5[BP], AL ; AL est copié dans l'octet d'adresse SS:(BP+5)
MOV DH, [BX + VEC]
Adressage indexé
MOV BX, [DI] ; copie le mot d'adresse DS:DI dans le registre BX
MOV AL, 13[SI] ; copie dans AL l'octet d'adresse DS:(SI+13)
MOV [VCT + SI], AX
MOV [SI], AH
Adressage basé indexé
MOV AL, [BX + SI + 2] ; copie l'octet d'adresse DS:(BX+SI+2) dans AL
MOV TABLE[BP][DI], AX
4. Programmation en Assembleur 8086
4.1 . Syntaxe d’une instruction en assembleur
Définitions de constantes :
Exemple
data SEGMENT
truc DW 0F0AH ; en hexa
masque DB 01110000b ; en binaire
data ENDS
• Déclaration des tableaux
data SEGMENT
machine db 10, 0FH ; 2 fois 1 octet
chose db -2, ’ALORS’
data ENDS
Type d'opérandes
4.3. Exemple de programmes :
;---------------------------------------------------------------------------------------------------------
;Programme calculant la somme de 6 et 3 et l'affiche
;---------------------------------------------------------------------------------------------------------
code SEGMENT
Addition PROC
ASSUME DS:data ; Attribution du registre de segment de donnée
ASSUME CS:code ; Attribution du registre de segment de code
debut :
; Pointage des données------------------------------------------------------------
MOV AX, data ; première instruction
MOV DS, AX ; initialisation de DS
main:
MOV AX,data ; Initialisation du registre de
MOV DS,AX ; segment de données
fini:
MOV AH,4CH ; retour au Dos
INT 21H
code ENDS
END main
5. Réalisation pratique d’un programme en assembleur
fichier.COM
Le programme Debug
debug est un programme qui s’exécute sur PC (sous DOS) et qui permet
de manipuler des programmes en langage symbolique.