Previous Up Next

D.1  Arithmétique classique

add : addition d'entiers

Syntaxe gas ATT et opérandes possibles :

add src dest
addb src dest
addl src dest
addw src dest
  
source destination
idata reg
idata mem
reg reg
mem reg
reg mem



Description : Cette instruction additionne le contenu de l'opérande src avec celui de l'opérande dest et stocke le résultat dans l'espace désigné par l'opérande dest. Les opérandes doivent représenter des objets de même taille en bits. De plus, si les opérandes sont Drapeaux :
OF DF IF TF SF ZF   AF   PF   CF
* - - - * * - * - * - *

cmp : compare deux opérandes

Syntaxe gas ATT et opérandes possibles :

cmp op1 op2
cmpb op1 op2
cmpl op1 op2
cmpw op1 op2
  
op1 op2
idata reg
idata mem
reg reg
mem reg
reg mem



Description : Cette instruction compare op1 à op2 et positionne des drapeaux du registre EFLAGS suivant le résultat :
Condition Comparaison signée Comparaison non signée
 
op1 < op2 ZF == 0 et SF == OF ZF == 0 et CF == 0
op1 <= op2 SF == OF CF == 0
op1 == op2 ZF == 1 ZF == 1
op1 >= op2 ZF == 1 ou SF != OF ZF == 1 ou CF == 1
op1 > op2 SF != OF CF == 1


Drapeaux :
OF DF IF TF SF ZF   AF   PF   CF
* - - - * * - * - * - *

dec : décrémentation

Syntaxe gas ATT et opérandes possibles :

dec op
decb op
decw op
decl op
  
op
reg
mem



Description : Cette instruction soustrait 1 à op.

Drapeaux :
OF DF IF TF SF ZF   AF   PF   CF
* - - - * * - * - * - -

div : division d'entiers non signés

Syntaxe gas ATT et opérandes possibles :

div op
divb op
divw op
divl op
  
op
reg
mem



Description : Si l'opérande de cette instruction est codée sur 8 bits, le contenu du registre AX est divisé par l'opérande, le quotient est stocké dans AL et le reste dans AH.

Si l'opérande de cette instruction est codée sur 16 bits, l'entier défini par la paire de registre DX:AX est divisé par l'opérande, le quotient est stocké dans AX et le reste dans DX. Dans la pair de registre DX:AX, le poids faible est AX.

Si l'opérande de cette instruction est codée sur 32 bits, l'entier défini par la pair de registre EDX:EAX est divisé par l'opérande, le quotient est stocké dans EAX et le reste dans EDX.

Le débordement n'est pas indiqué par le drapeau CF.

En cas de résultat non entier, une troncation à 0 est faite.

Drapeaux :
OF DF IF TF SF ZF   AF   PF   CF
? - - - ? ? - ? - ? - ?

inc : incrémentation

Syntaxe gas ATT et opérandes possibles :

dec op
decb op
decw op
decl op
  
op
reg
mem



Description : Cette instruction additionne 1 à op.

Drapeaux :
OF DF IF TF SF ZF   AF   PF   CF
* - - - * * - * - * - -

mul : multiplication non signée

Syntaxe gas ATT et opérandes possibles :

mul src
mulb src
mulw src
mull src
  
src
reg
mem



Description : Cette instruction multiplie le contenu de l'accumulateur EAX (AX, AL suivant la taille de src) avec src. Le résultat est placé dans l'accumulateur.

Le résultat est calculé à concurrence du double de la taille de src. Par exemple,

Les drapeaux OF et CF sont mis à 0 si la moitié supérieure du résultat est nulle et à 1 sinon.

Drapeaux :
OF DF IF TF SF ZF   AF   PF   CF
* - - - ? ? - ? - ? - *


sub : soustraction d'entiers

Syntaxe gas ATT et opérandes possibles :

sub src dest
subb src dest
subl src dest
subw src dest
  
source destination
idata reg
idata mem
reg reg
mem reg
reg mem



Description : Cette instruction soustrait le contenu de l'opérande src avec celui de l'opérande dest et stocke le résultat dans l'espace désigné par l'opérande dest. Les opérandes doivent représenter des objets de même taille en bits. De plus, cette instruction provoque un double calcul : le processeur fait simultanément la soustraction une fois en supposant les données signées et une fois en les supposant non signées.

Ainsi, le drapeau OF est levé si un débordement survient lors de la soustraction signée et le drapeau CF est levé si une retenue survient lors de la soustraction non signée. Le drapeaux CF indique le signe du résultat si nécessaire.

Drapeaux :
OF DF IF TF SF ZF   AF   PF   CF
* - - - * * - * - * - *




Pour tout commentaire : Alexandre Sedoglavic.
Previous Up Next