20.05.2015 Views

Télécharger - Site personnel de Serge Moutou

Télécharger - Site personnel de Serge Moutou

Télécharger - Site personnel de Serge Moutou

SHOW MORE
SHOW LESS

Create successful ePaper yourself

Turn your PDF publications into a flip-book with our unique Google optimized e-Paper software.

segment sera le segment <strong>de</strong> données DS.<br />

Exemple : MOV AX,[200]<br />

3°) Adressage indirect par registre<br />

Dans ce cas l'adresse n'est plus donnée directement dans l'instruction mais est stockée provisoirement dans un<br />

registre.<br />

Exemple :<br />

MOV BX,200<br />

MOV AX,[BX] aura le même effet que l'instruction précé<strong>de</strong>nte. Cette instruction ne peut utiliser que BX comme registre<br />

entre crochets.<br />

4°) Adressage relatif à une base<br />

L'adresse effective est calculée à partir d'une base, stockée dans un registre <strong>de</strong> base BX ou BP et d'un déplacement.<br />

Exemple : MOV BX,1F0<br />

MOV AX,[BX+10]<br />

5°) Adressage direct in<strong>de</strong>xé<br />

C'est le dual du précé<strong>de</strong>nt : la base est une constante et le déplacement est dans un registre d'in<strong>de</strong>s SI ou DI.<br />

Exemple : MOV DI,10<br />

MOV AX,[1F0+DI]<br />

6°) Adressage in<strong>de</strong>xé par rapport à une base<br />

C'est la combinaison <strong>de</strong>s <strong>de</strong>ux adressages précé<strong>de</strong>nts.<br />

Exemple : MOV AX,[BX+DI+1E0].<br />

Exercice 13<br />

Reprendre tous les exemples et calculer les adresses physiques correspondants aux mo<strong>de</strong>s d'adressage présentés.<br />

On donne pour cela : DS=10FF, BX=0100, DI=0200<br />

VI) Les instructions<br />

1°) Les instructions <strong>de</strong> transfert<br />

- Transfert <strong>de</strong> données :<br />

MOV : déjà étudiée.<br />

PUSH (empiler), POP (dépiler) : POP AX ; PUSH BX<br />

XCHG (échange) : XCHG AX,BX ; XCHG BL,[350]<br />

- Transfert d'adresses<br />

LEA (Load effective Adress) : LEA BX,[BX+DI+200] met BX+DI+200 et non son contenu dans BX.<br />

IN, OUT : instructions d'entrées/sorties. Opéran<strong>de</strong>s : accumulateur (AX ou AL), port. Si le numéro <strong>de</strong> port est inférieur à<br />

FF il peut - être écrit directement dans l'instruction, autrement il faudra le charger dans DX.<br />

2°) Les instructions arithmétiques et logiques<br />

- les instructions logiques : AND, OR, XOR avec tous les mo<strong>de</strong>s d'adressage.<br />

- TEST, NOT test (<strong>de</strong> <strong>de</strong>ux opéran<strong>de</strong>s) et négation,<br />

- décalages et rotations : SHL, SHR, ROL, ROR, SAR (décalage signé), RCR et RCL (décalage avec la retenue) : SHL<br />

AX,CL....<br />

- les instructions arithmétiques : ADD, ADC, DAA, INC, SUB, SBB, DAS, DEC, NEG, MUL, IMUL, AAM, DIV, IDIV, AAD<br />

Une instruction est très importante à détailler : la comparaison CMP op1,op2<br />

36 /163

Hooray! Your file is uploaded and ready to be published.

Saved successfully!

Ooh no, something went wrong!