assembleur-8086

Page 1

Architecture des ordinateurs L’Assembleur L Assembleur 8086 Architecture des ordinateurs A. El magri g

T.Dumartin

IUT Lannion

DĂŠpartement Mesures Physiques

2006 / 2007

Architecture des ordinateurs


T.Dumartin IUT Lannion Prof: A. El magri

DĂŠpartement Mesures Physiques 2009/2010

2006 / 2007

Architecture des ordinateurs


V. La programmation en assembleur du microprocesseur 8086 5.1 Généralités

J d’i Jeu d’instructions t ti : Les L µP P CISC (Complex (C l Instruction I i Set S Computer):le C )l nombre d’instructions reconnues varie entre 75 et 150. Les µP RISC (Reduced Instruction Set Computer) : entre 10 et 30 instructions ⇒améliorer le temps d d’exécution exécution. Mnémonique: notation symbolique pour représenter les instructions Programme constitué de mnémoniques est appelé programme en Assembleur.

T.Dumartin IUT Lannion Prof: A. El magri

Département Mesures Physiques 2009/2010

2006 / 2007

Architecture des ordinateurs


V. La programmation en assembleur du microprocesseur 8086 5.1 Généralités

L instructions Les i t ti peuventt être êt classées l é :

instructions de transfert de données ; instructions arithmétiques ; instructions logiques ; instructions de branchement ...

T.Dumartin IUT Lannion Prof: A. El magri

Département Mesures Physiques 2009/2010

2006 / 2007

Architecture des ordinateurs


V. La programmation en assembleur du microprocesseur 8086 5.2 Les instructions de transfert

Permettent P tt t d de déplacer dé l des d données d é d’une d’ source vers une destination : registre vers mémoire ; registre vers registre ; mémoire vers registre.

Remarque : le 8086 n’autorise pas les transferts de mémoire vers mémoire.

T.Dumartin IUT Lannion Prof: A. El magri

Département Mesures Physiques 2009/2010

2006 / 2007

Architecture des ordinateurs


V. La programmation en assembleur du microprocesseur 8086 5.2 Les instructions de transfert

S t Syntaxe : MOV destination destination, source Exemples : Adressage par registre: mov ax,bx : charge le contenu du registre BX dans AX. Adressage immédiat. mov al,12H : charge le registre AL avec la valeur 12H Adressage direct mov bl,[1200H] bl [1200H] : transfère le contenu de la case mémoire d’adresse effective (offset) 1200H vers le registre BL.

T.Dumartin IUT Lannion Prof: A. El magri

Département Mesures Physiques 2009/2010

2006 / 2007

Architecture des ordinateurs


V. La programmation en assembleur du microprocesseur 8086 5.2 Les instructions de transfert

Adressage direct mov bl,[1200H] : transfère le contenu de la case mémoire d’adresse effective (offset) 1200H vers le registre BL.

T.Dumartin IUT Lannion Prof: A. El magri

Département Mesures Physiques 2009/2010

2006 / 2007

Architecture des ordinateurs


V. La programmation en assembleur du microprocesseur 8086 5.2 Les instructions de transfert

Forçage de segment mov bl,es :[1200H]

T.Dumartin IUT Lannion Prof: A. El magri

DĂŠpartement Mesures Physiques 2009/2010

2006 / 2007

Architecture des ordinateurs


V. La programmation en assembleur du microprocesseur 8086 5.2 Les instructions de transfert

spécificateur de format

mov byte ptr [1100H], 65H : transfère sur 1 octet;

mov word d ptr t [1100H], [1100H] 65H : transfère t fè sur 2 octets. t t

Remarque : les µP Intel rangent l’octet de poids faible à l’adresse la plus basse . T.Dumartin IUT Lannion Prof: A. El magri

Département Mesures Physiques 2009/2010

2006 / 2007

Architecture des ordinateurs


V. La programmation en assembleur du microprocesseur 8086 5.2 Les instructions de transfert

adressage basé l’offset est contenu dans un registre de base BX ou BP. Exemples : mov al,[bx] : transfère la donnée dont l’offset est contenu dans le registre de base BX vers AL; Le segment associé est DS mov al,[bp] : le segment associé est le segment de pile SS.

T.Dumartin IUT Lannion Prof: A. El magri

Département Mesures Physiques 2009/2010

2006 / 2007

Architecture des ordinateurs


V. La programmation en assembleur du microprocesseur 8086 5.2 Les instructions de transfert

adressage indexé :

L’offset est le contenu de SI ou DI, associés au segment de d données. é

Exemples : mov al,[si] mov [di],bx mov [si+100H],ax [si+100H] ax ou mov [si][100H],ax [si][100H] ax ou mov 100H[si],ax 100H[si] ax

T.Dumartin IUT Lannion Prof: A. El magri

Département Mesures Physiques 2009/2010

2006 / 2007

Architecture des ordinateurs


V. La programmation en assembleur du microprocesseur 8086 5.2 Les instructions de transfert

adressage basé et indexé : permet l’adressage de structures complexes : matrices, enregistrements, ... l’ ff t registre l’offset= i t de d base b + registre i t d’index d’i d + valeur l constante. t t Exemples : mov ov aah,[bx+si+100H] ,[b s 00 ]

mov bx,10 mov si,15 mov byte ptr matrice[bx][si],12H

BX et SI jouent le rôle d’indices de ligne et de colonne T.Dumartin IUT Lannion Prof: A. El magri

Département Mesures Physiques 2009/2010

2006 / 2007

Architecture des ordinateurs


V. La programmation en assembleur du microprocesseur 8086 5.2 Les instructions de transfert

Exercice: Dans le cas où ces registres ont les valeurs suivantes: BX=324A, BP=2500, AX=36C1, CX=3000, DX=2478 DS=5000, SS=7000, SI=2000, DI=4000, C l l l’ Calculer l’adresse d physique h i de d la l mémoire é i ou l’opérande l’ é d estt sauvegardé, ainsi que le contenu des locations mémoires dans chacun des modes d’adressage d adressage suivants: a- MOV [SI], AL c- MOV [BX], AX e- MOV [BX]+25, DX g MOV [DI+30] g[DI+30], BX i- MOV [BP][SI]+25, DX k- MOV [SI]+75, k [SI] 75, AH

b- MOV [SI+BX+10], AH d- MOV [2540], AX f- MOV [BP]+150, AX h MOV [DI][BX]+19 h[DI][BX]+19, CX j- MOV [BP+SI+180], BX ll- MOV [DI [DI+BP+300], BP 300], AX

T.Dumartin IUT Lannion Prof: A. El magri

2006 / 2007

Département Mesures Physiques 2009/2010

Architecture des ordinateurs


V. La programmation en assembleur du microprocesseur 8086 5.3 Les instructions arithmĂŠtiques

9Addition; 9Soustraction; 9M lti li ti 9Multiplication; 9Division Division .

T.Dumartin IUT Lannion Prof: A. El magri

DĂŠpartement Mesures Physiques 2009/2010

2006 / 2007

Architecture des ordinateurs


V. La programmation en assembleur du microprocesseur 8086 5.3 Les instructions arithmétiques

Addition;

ADD

opérande1, opérande2

L’opération effectuée est : opérande1 é d 1 ← opérande1 é d 1 + opérande2 é d 2 Exemple: p - add ah,[1100H] - add ah,[bx] : - add byte ptr [1200H],05H :

T.Dumartin IUT Lannion Prof: A. El magri

Département Mesures Physiques 2009/2010

2006 / 2007

(adressage direct) ; (adressage basé) ; (adressage immédiat).

Architecture des ordinateurs


V. La programmation en assembleur du microprocesseur 8086 5.3 Les instructions arithmétiques

Soustraction;

SUB

opérande1, opérande2

L’opération effectuée est : opérande1 é d 1 ← opérande1 é d 1 − opérande2. é d 2 Exemple: p - sub ah,[1100H] - sub ah,[bx] : - sub byte ptr [1200H],05H :

T.Dumartin IUT Lannion Prof: A. El magri

Département Mesures Physiques 2009/2010

2006 / 2007

Architecture des ordinateurs


V. La programmation en assembleur du microprocesseur 8086 5.3 Les instructions arithmétiques

Multiplication; MUL

opérande

L’opération effectuée est : AX ← AL x opérande

(si un octet)

ou: (DX, AX) ← AX x opérande

T.Dumartin IUT Lannion Prof: A. El magri

Département Mesures Physiques 2009/2010

2006 / 2007

(sur 2 octets)

Architecture des ordinateurs


V. La programmation en assembleur du microprocesseur 8086 5.3 Les instructions arithmétiques

Exemples (Mul); a.

b.

mov al,51 mov bl,32 , mul bl

mov ax,4253 mov bx,1689 mul bx

c mov al,43 c. al 43 mov byte ptr [1200H],28 mul byte ptr [1200H] T.Dumartin IUT Lannion Prof: A. El magri

Département Mesures Physiques 2009/2010

2006 / 2007

AX = 51 × 32

(DX, AX) = 4253 × 1689

AX = 43 × 28 Architecture des ordinateurs


V. La programmation en assembleur du microprocesseur 8086 5.3 Les instructions arithmétiques

Division; DIV

opérande

L’opération effectuée est : AX ← AX ÷ opérande AL = quotient; ti t

AH = reste t

( i un octet) (si t t)

ou: (DX, AX) ← AX ÷ opérande AX = quotient ti t ett DX = reste. t T.Dumartin IUT Lannion Prof: A. El magri

Département Mesures Physiques 2009/2010

2006 / 2007

( (sur 2 octets) t t ) Architecture des ordinateurs


V. La programmation en assembleur du microprocesseur 8086 5.3 Les instructions arithmétiques

Exemples (DIV); a. mov mov div

ax,35 bl,10 , bl

b. mov mov mov div

dx,0 ax 1234 ax,1234 bx,10 bx ⇒

T.Dumartin IUT Lannion Prof: A. El magri

Département Mesures Physiques 2009/2010

⇒ AL = 3 (quotient) et AH = 5 (reste)

2006 / 2007

AX = 123 et DX = 4

Architecture des ordinateurs


V. La programmation en assembleur du microprocesseur 8086 5.3 Les instructions arithmétiques

Autres instructions arithmétiques ; ADC : addition avec retenue

(1 ajoutée si CF = 1);

SBB : soustraction avec retenue (-1 ajoutée si CF = 1); CMP : comparaison sans stockage de résultat INC : incrémentation d’une d une unité ; DEC : décrémentation d’une unité ; IMUL : multiplication signée ; IDIV : division signée. T.Dumartin IUT Lannion Prof: A. El magri

Département Mesures Physiques 2009/2010

2006 / 2007

Architecture des ordinateurs


V. La programmation en assembleur du microprocesseur 8086

T.Dumartin IUT Lannion Prof: A. El magri

DĂŠpartement Mesures Physiques 2009/2010

2006 / 2007

Architecture des ordinateurs


V. La programmation en assembleur du microprocesseur 8086 5.4 Les instructions logiques

Manipule des données « bits » Les opérations logiques de base sont : 9

ET;;

9

OU;

9

OU exclusif ;

9

complément à 1;

9

complément à 2;

9 décalages et rotations. T.Dumartin IUT Lannion Prof: A. El magri

Département Mesures Physiques 2009/2010

2006 / 2007

Architecture des ordinateurs


V. La programmation en assembleur du microprocesseur 8086 5.4 Les instructions logiques

ET logique ; AND opérande1, opérande1 opérande2 ⇒ opérande1 ← opérande1 ET opérande2. Exemple:

Application : masquage de bits

T.Dumartin IUT Lannion Prof: A. El magri

Département Mesures Physiques 2009/2010

2006 / 2007

Architecture des ordinateurs


V. La programmation en assembleur du microprocesseur 8086 5.4 Les instructions logiques

OU logique ; OR

opérande1 opérande2 opérande1,

⇒ opérande1 ← opérande1 OU opérande2. Application : mise à 1 d’un ou plusieurs bits

mov ah,10110001B or ah,00001010B T.Dumartin IUT Lannion Prof: A. El magri

Département Mesures Physiques 2009/2010

2006 / 2007

Architecture des ordinateurs


V. La programmation en assembleur du microprocesseur 8086 5.4 Les instructions logiques

Complément à 1 ; NOT opérande ⇒ opérande ← opérande mov al, 10010001B ⇒ AL = 10010001B = 01101110B. not al Complément à 2 ;

NEG opérande

⇒ opérande é d ← opérande é d +1 Exemple : mov mov neg g add T.Dumartin IUT Lannion Prof: A. El magri

al,25 al 25 bl,12 bl al,bl Département Mesures Physiques 2009/2010

⇒ AL = 25 + (−12) = 13. 2006 / 2007

Architecture des ordinateurs


V. La programmation en assembleur du microprocesseur 8086 5.4 Les instructions logiques

OU exclusif ; XOR opérande1, opérande2 ⇒ opérande1 ← opérande1 e pe Exemple: mov xor

al,25 al,al

opérande2 opérande2.

⇒ AL = 0.

Instructions de décalages et de rotations ; Déplacement d’un mot vers la gauche ou vers la droite.

T.Dumartin IUT Lannion Prof: A. El magri

Département Mesures Physiques 2009/2010

2006 / 2007

Architecture des ordinateurs


V. La programmation en assembleur du microprocesseur 8086 5.4 Les instructions logiques

Décalage vers la droite (Shift Right) ; SHR opérande, n ⇒ décale l’opérande de n positions vers la droite. droite e p e 1: Exemple mov al,11001011B shr al,1 Exemple p 2: décalage g de AL de trois positions. p mov cl,3 shr al,cl T.Dumartin IUT Lannion Prof: A. El magri

Département Mesures Physiques 2009/2010

2006 / 2007

Architecture des ordinateurs


V. La programmation en assembleur du microprocesseur 8086 5.4 Les instructions logiques

Décalage logique vers la gauche (Shift Left) ; SHL opérande, n ⇒ décale l’opérande de n positions vers la gauche.

Exemple : mov shl

T.Dumartin IUT Lannion Prof: A. El magri

al,11001011B al,1

Département Mesures Physiques 2009/2010

2006 / 2007

Architecture des ordinateurs


V. La programmation en assembleur du microprocesseur 8086 5.4 Les instructions logiques

Décalage arithmétique vers la droite ; SAR opérande, n ⇒ Ce décalage conserve le bit de signe . Exemple : mov sar

al,11001011B al 1 al,1

Décalage arithmétique vers la gauche ; SAL opérande, n Identique au décalage logique vers la droite. T.Dumartin IUT Lannion Prof: A. El magri

Département Mesures Physiques 2009/2010

2006 / 2007

Architecture des ordinateurs


V. La programmation en assembleur du microprocesseur 8086 5.4 Les instructions logiques

Rotation Ă droite (Rotate Right) ; ROR operande, n Exemple : mov ror

T.Dumartin IUT Lannion Prof: A. El magri

al,11001011B al 11001011B al,1

DĂŠpartement Mesures Physiques 2009/2010

2006 / 2007

Architecture des ordinateurs


V. La programmation en assembleur du microprocesseur 8086 5.4 Les instructions logiques

Rotation à gauche (Rotate Left) ; ROL opérande, n Exemple : mov rol

T.Dumartin IUT Lannion Prof: A. El magri

al,11001011B al 11001011B al,1

Département Mesures Physiques 2009/2010

2006 / 2007

Architecture des ordinateurs


V. La programmation en assembleur du microprocesseur 8086 5.4 Les instructions logiques

Rotation à droite avec passage par l’indicateur de retenue ((Rotate Right g through g Carry) y) ; RCR opérande,n p , Exemple : mov rcr

T.Dumartin IUT Lannion Prof: A. El magri

al,11001011B al 11001011B al,1

Département Mesures Physiques 2009/2010

2006 / 2007

Architecture des ordinateurs


V. La programmation en assembleur du microprocesseur 8086 5.4 Les instructions logiques

Rotation à gauche avec passage par l’indicateur de retenue ((Rotate Left through g Carry); y); RCL opérande,n é d Exemple : mov rcl

T.Dumartin IUT Lannion Prof: A. El magri

al,11001011B al,1

Département Mesures Physiques 2009/2010

2006 / 2007

Architecture des ordinateurs


V. La programmation en assembleur du microprocesseur 8086

T.Dumartin IUT Lannion Prof: A. El magri

DĂŠpartement Mesures Physiques 2009/2010

2006 / 2007

Architecture des ordinateurs


V. La programmation en assembleur du microprocesseur 8086 5.5 Les instructions de branchement

¾Modifier l’ordre d’exécution des instructions.

3 types de saut :

saut inconditionnel ; sauts conditionnels ; appel de sous sous-programmes. programmes.

T.Dumartin IUT Lannion Prof: A. El magri

Département Mesures Physiques 2009/2010

2006 / 2007

Architecture des ordinateurs


V. La programmation en assembleur du microprocesseur 8086 5.5 Les instructions de branchement

Instruction de saut inconditionnel ; JMP label ⇒ Un saut (jump) vers le label spécifié. Instructions précédant le saut jmp

suite

iinstructions i suivant i lle saut (j (jamais i exécutées) é é ) suite :… ← instruction exécutée après le saut Exemple : boucle : inc dec jmp T.Dumartin IUT Lannion Prof: A. El magri

ax bx boucle

Département Mesures Physiques 2009/2010

2006 / 2007

⇒ boucle infinie. Architecture des ordinateurs


V. La programmation en assembleur du microprocesseur 8086 5.5 Les instructions de branchement

Instruction de saut inconditionnel ; JMP label ⇒ Un saut (jump) vers le label spécifié. IInstructions t ti précédant é éd t le l sautt jmp suite instructions suivant le saut (jamais exécutées) suite :… ← instruction exécutée après le saut Exemple E l : boucle : inc dec jmp T.Dumartin IUT Lannion Prof: A. El magri

ax bx boucle

Département Mesures Physiques 2009/2010

2006 / 2007

⇒ boucle infinie. Architecture des ordinateurs


V. La programmation en assembleur du microprocesseur 8086 5.5 Les instructions de branchement

Instructions de sauts conditionnels ; Jcondition label ⇒ Saut S t sii une condition diti estt satisfaite. ti f it

Remarque : les indicateurs sont positionnés en fonction du résultat de la dernière opération. T.Dumartin IUT Lannion Prof: A. El magri

Département Mesures Physiques 2009/2010

2006 / 2007

Architecture des ordinateurs


V. La programmation en assembleur du microprocesseur 8086 5.5 Les instructions de branchement

Instructions de sauts conditionnels ; les sauts arithmétiques. arithmétiques

Ils suivent l’instruction de comparaison : CMP opérande1, p , opérande2 p Exemple :

superieur :

cmp jg jl …

inferieur :

T.Dumartin IUT Lannion Prof: A. El magri

Département Mesures Physiques 2009/2010

ax,bx superieur inferieur f

2006 / 2007

Architecture des ordinateurs


V. La programmation en assembleur du microprocesseur 8086 5.5 Les instructions de branchement

Instructions de sauts conditionnels ; Application On veut additionner deux nombres signés N1 et N2 se trouvant respectivement aux offsets 1100H et 1101H. 1101H Le résultat est rangé g à l’offset 1102H s’il est p positif,, à l’offset 1103H s’il est négatif et à l’offset 1104H s’il est nul.

T.Dumartin IUT Lannion Prof: A. El magri

Département Mesures Physiques 2009/2010

2006 / 2007

Architecture des ordinateurs


V. La programmation en assembleur du microprocesseur 8086 5.5 Les instructions de branchement

T.Dumartin IUT Lannion Prof: A. El magri

DĂŠpartement Mesures Physiques 2009/2010

2006 / 2007

Architecture des ordinateurs


V. La programmation en assembleur du microprocesseur 8086 5.5 Les instructions de branchement

Appel de sous-programmes ; nom_sp

PROC ret ENDP

nom_sp

← instructions du sous-programme ← retour au programme principal

Appel SP:

CALL

call

T.Dumartin IUT Lannion Prof: A. El magri

procédure

← instructions nom sp nom_sp ← appel au SP

Département Mesures Physiques 2009/2010

2006 / 2007

Architecture des ordinateurs


V. La programmation en assembleur du microprocesseur 8086 5.5 Les instructions de branchement

Appel de sous-programmes ;

T.Dumartin IUT Lannion Prof: A. El magri

DĂŠpartement Mesures Physiques 2009/2010

2006 / 2007

Architecture des ordinateurs


V. La programmation en assembleur du microprocesseur 8086 5.5 Les instructions de branchement

Fonctionnement de la pile : Pile: zone mémoire Pil é i LIFO (Last (L t In I First Fi t Out O t : dernier d i entré, té premier sorti). E Empiler il : placer l la l donnée d é au sommett de d la l pile il ; Dépiler : lire la donnée se trouvant au sommet de la pile

T.Dumartin IUT Lannion Prof: A. El magri

Département Mesures Physiques 2009/2010

2006 / 2007

Architecture des ordinateurs


V. La programmation en assembleur du microprocesseur 8086 5.5 Les instructions de branchement

Fonctionnement de la pile : instruction d’empilage : instruction de dépilage : Exemple :

PUSH POP

opérande opérande

push ax

; empilage du registre AX ...

push bx

; ... du registre BX ...

push [[1100H]] p

; ... et de la case 1100H-1101H

pop

[1100H]

; dépilage dans l’ordre inverse

pop

b bx

pop

ax

Remarque : SP doit être initialisée avant de pouvoir utiliser la pile. T.Dumartin IUT Lannion Prof: A. El magri

Département Mesures Physiques 2009/2010

2006 / 2007

Architecture des ordinateurs


V. La programmation en assembleur du microprocesseur 8086

T.Dumartin IUT Lannion Prof: A. El magri

DĂŠpartement Mesures Physiques 2009/2010

2006 / 2007

Architecture des ordinateurs


T.Dumartin IUT Lannion Prof: A. El magri

DĂŠpartement Mesures Physiques 2009/2010

2006 / 2007

Architecture des ordinateurs


Turn static files into dynamic content formats.

Create a flipbook
Issuu converts static files into: digital portfolios, online yearbooks, online catalogs, digital photo albums and more. Sign up and create your flipbook.