0% ont trouvé ce document utile (0 vote)
11 vues23 pages

Instructions de transfert et arithmétiques

Le document décrit les différents types d'instructions d'un processeur, notamment les instructions de transfert comme MOV et XCHG, les instructions arithmétiques comme ADD, SUB, MUL et DIV, ainsi que les instructions de conversion CBW et CWD.

Transféré par

Hiba Saghir
Copyright
© All Rights Reserved
Nous prenons très au sérieux les droits relatifs au contenu. Si vous pensez qu’il s’agit de votre contenu, signalez une atteinte au droit d’auteur ici.
Formats disponibles
Téléchargez aux formats PDF, TXT ou lisez en ligne sur Scribd
0% ont trouvé ce document utile (0 vote)
11 vues23 pages

Instructions de transfert et arithmétiques

Le document décrit les différents types d'instructions d'un processeur, notamment les instructions de transfert comme MOV et XCHG, les instructions arithmétiques comme ADD, SUB, MUL et DIV, ainsi que les instructions de conversion CBW et CWD.

Transféré par

Hiba Saghir
Copyright
© All Rights Reserved
Nous prenons très au sérieux les droits relatifs au contenu. Si vous pensez qu’il s’agit de votre contenu, signalez une atteinte au droit d’auteur ici.
Formats disponibles
Téléchargez aux formats PDF, TXT ou lisez en ligne sur Scribd

Jeu d'instructions

-Instructions de transfert

- Instructions de calcul ( Inst Arithmétiques)

- Instructions de décalages

- Instructions de saut/appel
Instruction de transfert: MOV

MOV d e s t , s o u r c e
– dest reçoit source

E x e m ples :

MOV AL,0 # AL ← 0

MOV n,AL # n ← (AL)


Instruction de transfert: MOV
Mouvemnts autorisés:

MOV Registre général, Registre quelconque

MOV Mémoire, Registre quelconque

MOV Registre général, Mémoire

MOV Registre général, Constante

MOV Mémoire, Constante

MOV Registre de segment, Registre général


Instruction de transfert: MOV
Remarque: Source et Destination doivent avoir
la même taille.
Exemples:
MOV AX, 5 ; Transférer 5 vers AX
MOV ES, D X ; Transférer le contenu de D X vers ES
MOV AL, BL ; Transférer le contenu de BL vers AL
MOV AX, SI ; Transférer le contenu de SI vers AX
MOV Bêta, CL ; Transférer le contenu de CL vers la case
mémoire Bêta
Instruction de transfert XCHG (« E x c h a n g e »)

Syntaxe: XCHG Destination, Source

Description: Échange les contenus de Source et de


Destination.
Mouvements autorisés:
XCHG Registre général, Registre général XCHG
Registre général, Mémoire
XCHG Mémoire, Registre général
Exemple:
XCHG AL, AH
XCHG Alpha, BX
XCHG DX, Beta
In s t r u c t i on s Arithmétiques
Le 8086 permet d'effectuer les Quatre opérations
arithmétiques de base, l'addition, la soustraction, la
multiplication et la division. Les opérations peuvent
s'effectuer sur des nombres de 8 bits ou de 16 bits
signés ou non signés. Les nombres signés sont
représentés en complément à 2.
In s t r u ct i on ADD
Syntaxe:
ADD Destination, Source
Destination ← Destination+Source.

La destination peut être: registre, mémoire.


La source peut être: registre, mémoire, valeur immédiate.

Les FLAGS affectés:

Exemple:
Instruction ADC
Addition entre deux opérandes avec carry.
Syntaxe:
ADC Destination, Source ; Destination Destination+Source+CF.

La Destination peut être: registre, mémoire.


La Source peut être: registre, mémoire, valeur immédiate.
Les FLAGS affectés :
Instruction INC
Incrémentation d’un opérande.
Syntaxe:
INC Destination ; Destination ← Destination+1.
La Destination peut être: registre, mémoire.
Les FLAGS affectés:
CF reste inchangé.
Instruction SUB
Soustraction entre deux opérandes.
Syntaxe:
SUB D estinati on, Sou rce
Destination ← Destination – Source.

La Destination peut être: registre, mémoire.


La Source peut être: registre, mémoire,valeur
immédiate.
Exemples:
SUB AL,7 permet de soustraire 7 de la valeur du registre AL
SUB CL,44h permet d'effectuer l'opération «CL = CL - 44h»
SUB AL,BL permet d'effectuer l'opération «AL = AL - BL»
Soustraction entre deux opérandes avec
carry.
Syntaxe:
SBB D estination, Sou rce
Destination ← Destination – Source – CF.

La Destination peut être: registre, mémoire.


La Source peut être: registre, mémoire,
valeur immédiate.
Les FLAG affectés :
Instruction DEC
Décrémentation d’un opérande
Syntaxe:
DEC Destination ; Destination ←Destination – 1

La Destination peut être : registre, mémoire.

Les FLAGS affectés:

CF reste inchangé.
Instruction NEG
La négation d’une valeur (changement de signe
en complément à deux).
Syntaxe:
NEG D esti nation ;
Destination ← Destination * (-1).
La destination peut être : registre, mémoire.
Les FLAG affectés:
Algorithme de la négation en complément à
deux : 1- inversé tous les bits de l’opérande.
2- Additionné « 1 » au résultat précèdent.
Exemple :
MOV AL, 05h
NEG AL; AL ← AL*(-1)
CMP Op1, Op2 Résultat ← Op1 – Op2.

Op1 peut être : registre, mémoire.


Op2 peut être : registre, mémoire, valeur immédiate.
Exemple:
MOV AL, 40h
MOV AH, 30h
CMP AL, AH
Plus la mise à jour des FLAG : CF ← 0 ; OF ← 0 ; AF ← 0 ; SF ←0 ; ZF← 0;
PF ←0.
On peut dire que AL ≠ AH.
On peut dire que AL plus grand que AH.
AL = FBh la représentation de (-5) en complément à 2.
D’une façon générale le calcul de complément à (n) d’une valeur est
calculé par l’algorithme suivant :
Le complément à (n) ←inversion bit à bit (valeur) + n/2. (Avec (n) est
un entier pair).
Exemple de complément à 10 : COM10 ← NOT (Value) + 05h.
Instruction MUL
Multiplication entre l’accumulateur et un opérande
(non signé).
Syntaxe:
MUL Opérande.
Si l’opérande est une valeur sur 8 bits :
AX ← AL*Opérande.
Si l’opérande est une valeur sur 16 bits :
DX : AX ← AX*Opérande.
L’opérande peut être: registre, mémoire.
Les FLAGS affectés:
Le ZF, SF, PF et AF sont inconnus (X).
Exemple :
MOV AL, 20h
MOV CL, 02h
MUL CL; AX ← AL*CL.
AX=20h*02h=40h.
Instruction DIV
Division entre l’accumulateur et un opérande (non
signé). Syntaxe:
DIV Opérande.
Si l’opérande sur 8 bits : AL ← AX / Opérande ; AH ← Reste.
Si l’opérande sur 16 bits : AX ← (DX : AX) / Opérande ;
DX ← Reste.
L’opérande peut être : registre, mémoire.
Le CF, OF, ZF, SF, PF, et AF sont inconnus (X).
Exemple:
MOV DX, 0000h ; AX ←(DX: AX) / CX
MOV AX, 2000h ; AX ← (00002000h)/2=1000h.
MOV CX, 0002h ; DX ← 0000h.
DIV CX
Instruction CBW
Conversion de l’accumulateur de 8 bits à un mot de 16 bits
signé.
Syntaxe:
CBW ; s a n s o p é r a n d e .
La source est l’accumulateur de 8 bits (AL).
La destination est l’accumulateur de 16 bits (AX).
Les FLAGs restent inchangés.

Exemple:
MOV AL, 50h ;( SF=0).
CBW
AX ← 0050h
MOV AL, 80h; (SF=1).
CBW AX ← FF80h
Instruction CWD
Conversion de l’accumulateur de 16 bits à un mot de 32 bits
signé.
Syntaxe:
CWD ; s a n s o p é r a n d e .
La source est l’accumulateur de 16 bits.
La destination est formée par la concaténation entre les registres
DX et AX.
Les FLAGS restent inchangés.

Exemple:
MOV AX, 4002h (SF=0)
CWD DX: AXÍ00004002h.

MOV AX, 80FFh (SF=1)


CWD DX: AXÍFFFF80FFh.
a = b + c;
– MOV AL, b # AL ← (b)
– ADD AL, c # AL ← (AL) + (c)
– MOV a, AL # a ← (AL)
Exemples
d = a – e;
– MOV AL, a # AL ← (a)
– SUB AL , e # AL ← (AL) - (e)
– MOV d, AL # d ← (AL)
Exemples
f = ( g + h) – (i + j);

Vous aimerez peut-être aussi