Processeur modèle 8086 David Saint-Mellion Les registres de Données • 4 Registres de 16 bits - 2 octets : AX, BX, CX, DX • Chaque registre se décompose partie Haute H et partie Basse • AX = AH+AL AX BX CX DX 16 bits - 2octets AX AH AL 8 bits 1 octet 8 bits 1 octet Syntaxe de l’assembleur Un code opération et des opérandes L’instruction copie MOV Source est une valeur MOV AX, 5566 AX <-- 5566 Source est le contenu d’un registre MOV AX,BX AX <-- BX MOV Destination, Source Destination <-- Source Source est le contenu d’une position mémoire (adresse) MOV AX,[300] AX <-- [DS:300] Principe de l’adressage Dans le programme, une position mémoire est désignée par une base et un déplacement • adressage segmenté Adresse logique : Base : déplacement Segment : déplacement Position mémoire Déplacement Base Segment 1000 : 2500 La position mémoire se situe dans le segment à l ’adresse 1000 avec un déplacement (offset) de 2500 Les registres adresses Les registres de segment : • instructions CS • données DS (ES) • pile SS Une instruction est à l ’adresse CS:IP Une donnée est à l ’adresse DS:opérande Un objet de la pile est à l’adresse SS:SP Exemple 1000:0009 891E0800 MOV [0008],BX Donnée 9955 0008 Instruction IP 0009 CS 1000 891E0800 DS Exemple 1000:0009 MOV [0008],BX L ’instruction est à l ’adresse 1000:0009 • CS=1000 - IP=0009 Position Destination 0008 DS à pour valeur 2000. La donnée source (le contenu de BX) est placé à l ’adresse 2000:0008 [DS:0008] <-- BX IP 0009 891E0800 instruction DS 2000 CS 1000 CS IP DS BX 1000 0009 2000 AA22 Adresse Instruction Segment Destination Source