Les opérateurs
Les opérateurs sont le fondement même du traitement des opérations mathématique et comparatif de n'importe quel langage, toutefois, le langage de programmation assembleur du 80x86 ne l'utilise pas de la même manière. Puisqu'il s'agit d'un langage de programmation de bas de niveau, les expressions mathématiques doivent retourner un résultat immédiat, donc il ne peut pas avoir aucune forme de variable incluse dans celle-ci, mais les constantes sont autorisées. De plus, certains compilateurs de bas gamme (autre que Macro Assembler de Microsoft (MASM) ou Turbo Assembler de Borland (TASM)) ne support carrément pas les opérateurs mathématiques.
Liste des opérateurs
Opérateur | Syntaxe | Description | Mode |
---|---|---|---|
( ) | (expression) | Cet opérateur marque une priorité d'opération dans l'évaluation | IDEAL et MASM |
* | expression1 * expression2 | Cet opérateur permet d'effectuer la multiplication des expressions entières. Peut également être utilisé avec un mode d'adressage 80386 dans une expression avec un registre. | IDEAL et MASM |
+ (binaire) | expression1 + expression2 | Cet opérateur permet d'effectuer une addition de deux expressions | IDEAL et MASM |
+ (unaire) | + expression | Cet opérateur permet d'indiquer que l'expression est positive | IDEAL et MASM |
- (binaire) | expression1 - expression2 | Cet opérateur permet d'effectuer une soustraction de deux expressions | IDEAL et MASM |
- (unaire) | - expression | Cet opérateur permet d'indiquer que l'expression est négative | IDEAL et MASM |
. | memptr.fieldname | Cet opérateur permet de sélectionner un membre (champ) de la structure (enregistrement) | IDEAL et MASM |
/ | expression1 / expression2 | Cet opérateur permet d'effectuer une division entière de deux expressions. | IDEAL et MASM |
: | segorgroup:expression | Cet opérateur permet d'effectuer une génération de segment ou d'un groupe «override». | IDEAL et MASM |
? | Dx ? | Cet opérateur permet d'effectuer une initialisation avec une données indéterminé (où Dx peut être DB, DD, DF, DP ou DQ) | IDEAL et MASM |
[ ] | expression1[expression2] | Cet opérateur peut être utilisé pour spécifier une opérande d'ajout ou de registre indirecte en mémoire | MASM |
[ ] | [expression1][expression2] | Cet opérateur peut être utilisé pour spécifier une référence mémoire. | IDEAL |
AND | expression1 AND expression2 | Cet opérateur permet d'effectuer un «Et binaire». | IDEAL et MASM |
BYTE | BYTE expression | Cet opérateur permet de forcer l'adressage d'une expression avec un castre d'une taille d'un octet. | IDEAL |
BYTE PTR | BYTE PTR expression | Cet opérateur permet de forcer l'adressage d'une expression avec un castre d'une taille d'un octet. | IDEAL et MASM |
CODEPTR | CODEPTR expression | Cet opérateur permet de retourner la taille par défaut de l'adresse d'une procédure. | IDEAL et MASM |
DATAPTR | DATAPTR expression | Cet opérateur permet de forcer l'expression avec la taille d'un modèle dépendant. | IDEAL et MASM |
DUP | compteur DUP (expression[,expression]...) | Cet opérateur permet d'effectuer la répétition de données un nombre de fois spécifié par «compteur». | IDEAL et MASM |
DWORD | DWORD expression | Cet opérateur permet de forcer l'adressage d'une expression avec un castre d'une taille d'un double mot (4 octets). | IDEAL |
DWORD PTR | DWORD PTR expression | Cet opérateur permet de forcer l'adressage d'une expression avec un castre d'une taille d'un double mot (4 octets). | IDEAL et MASM |
EQ | expression1 EQ expression2 | Cet opérateur permet de retourner vrai si les deux expressions sont égales. | IDEAL et MASM |
FAR | FAR expression | Cet opérateur permet de forcer l'adressage d'une expression avec un code pointeur long. | IDEAL |
FAR PTR | FAR PTR expression | Cet opérateur permet de forcer l'adressage d'une expression avec un code pointeur long. | IDEAL et MASM |
FWORD | FWORD expression | Cet opérateur permet de forcer l'adressage d'une expression avec un code pointeur long de taille 32 bits. | IDEAL |
FWORD PTR | FWORD PTR expression | Cet opérateur permet de forcer l'adressage d'une expression avec un code pointeur long de taille 32 bits. | IDEAL et MASM |
GE | expression1 GE expression2 | Cet opérateur permet de retourner vrai si la première expression est supérieur ou égale à la deuxième expression. | IDEAL et MASM |
GT | expression1 GT expression2 | Cet opérateur permet de retourner vrai si la première expression est supérieur à la deuxième expression. | IDEAL et MASM |
HIGH | HIGH expression | Cet opérateur permet de retourner la partie haute d'une expression. Par exemple dans une expression 16 bits, il retournera les 8 bits de la partie haute de l'expression 16 bits. | IDEAL et MASM |
HIGH | type HIGH expression | Cet opérateur permet de retourner la partie haute (8 bits ou de la taille type) d'une expression. | IDEAL |
LARGE | LARGE expression | Cet opérateur permet de fixer la taille du déplacement 32 bits. Dans le mode «IDEAL», cette opération est autorisé seulement si la génération du code 386 est activé. | IDEAL |
LE | expression1 LE expression2 | Cet opérateur permet de retourner vrai si la première expression est inférieur ou égale à la deuxième expression. | IDEAL et MASM |
LOW | LOW expression | Cet opérateur permet de retourner la partie basse d'une expression. Par exemple dans une expression 16 bits, il retournera les 8 bits de la partie basse de l'expression 16 bits. | IDEAL et MASM |
LOW | type LOW expression | Cet opérateur permet de retourner la partie basse (8 bits ou de la taille type) d'une expression. | IDEAL |
LT | expression1 LT expression2 | Cet opérateur permet de retourner vrai si la première expression est inférieur à la deuxième expression. | IDEAL et MASM |
MASK | MASK recordorfieldname | Cet opérateur permet de retourner le bit de masque d'un champ d'enregistrement ou d'une entrée d'enregistrement. | IDEAL et MASM |
MOD | expression1 MOD expression2 | Cet opérateur permet de retourner le restant d'une division de deux expressions. | IDEAL et MASM |
NE | expression1 NE expression2 | Cet opérateur permet de retourner vrai si les deux expressions ne sont pas égales. | IDEAL et MASM |
NEAR | NEAR expression | Cet opérateur permet de forcer l'adressage d'une expression avec un code pointeur court. | IDEAL |
NEAR PTR | NEAR PTR expression | Cet opérateur permet de forcer l'adressage d'une expression avec un code pointeur court. | IDEAL et MASM |
NOT | NOT expression | Cet opérateur permet d'effectuer l'inversion de la valeur de chacun des bits d'un expression. | IDEAL et MASM |
OFFSET | OFFSET expression | Cet opérateur permet de retourner l'adressage de déplacement d'une expression avec le segment courant (ou le groupe de segment). | IDEAL et MASM |
OR | expression1 OR expression2 | Cet opérateur permet d'effectuer un «Ou binaire». | IDEAL et MASM |
PROC | PROC expression | Cet opérateur permet de forcer l'adressage d'une expression avec un code pointeur court ou long. | IDEAL |
PROC PTR | PROC PTR expression | Cet opérateur permet de forcer l'adressage d'une expression avec un code pointeur court ou long. | IDEAL et MASM |
PTR | type PTR expression | Cet opérateur permet de forcer l'adressage d'une expression de la taille du type spécifié. | IDEAL et MASM |
PWORD | PWORD expression | Cet opérateur permet de forcer l'adressage d'une expression avec un code pointeur long de taille 32 bits. | IDEAL |
PWORD PTR | PWORD PTR expression | Cet opérateur permet de forcer l'adressage d'une expression avec un code pointeur long de taille 32 bits. | IDEAL et MASM |
QWORD | QWORD expression | Cet opérateur permet de forcer l'adressage d'une expression avec un castre d'une taille d'un quadruple mot (8 octets). | IDEAL |
QWORD PTR | QWORD PTR expression | Cet opérateur permet de forcer l'adressage d'une expression avec un castre d'une taille d'un quadruple mot (8 octets). | IDEAL et MASM |
SEG | SEG expression | Cet opérateur permet de retourner le segment d'adressage d'une référence mémoire d'une expression. | IDEAL et MASM |
SHL | expression SHL compteur | Cet opérateur permet d'effectuer un décalage de bit vers la gauche. | IDEAL et MASM |
SHORT | SHORT expression | Cet opérateur permet de forcer l'adressage d'une expression d'un code pointeur très court (-128 à 127 de déplacement de l'emplacement courant). | IDEAL et MASM |
SHR | expression SHR compteur | Cet opérateur permet d'effectuer un décalage de bit vers la droite. | IDEAL et MASM |
SIZE | SIZE nom | Cet opérateur permet de retourner la taille d'un item de données alloué avec le nom spécifié. En mode MASM, SIZE retourne la valeur de LENGTH multiplier par TYPE. En mode IDEAL, SIZE retourne le compteur d'octets dans le «nom DUP». | IDEAL et MASM |
SMALL | SMALL expression | Cet opérateur permet de retourner la taille du déplacement en 16 bits. Dans le mode IDEAL, l'opération est légale seulement si la génération du code 386 est activé. | IDEAL et MASM |
SYMTYPE | SYMTYPE expression | Cet opérateur permet de retourner l'octet de décrivant l'expression. | IDEAL |
TBYTE | TBYTE expression | Cet opérateur permet de forcer l'adressage d'une expression de taille de 10 octets. | IDEAL |
TBYTE PTR | TBYTE PTR expression | Cet opérateur permet de forcer l'adressage d'une expression de taille de 10 octets. | IDEAL et MASM |
THIS | THIS type | Cet opérateur permet de créer une opérande avec l'adresse du segment courant et le compteur d'emplacement. | IDEAL et MASM |
.TYPE | .TYPE expression | Cet opérateur permet de retourner l'octet de mode descriptif et la porté de l'expression. | MASM |
TYPE | TYPE nom1 nom2 | Cet opérateur permet d'appliquer le type d'une variable existante ou d'un membre d'une structure dans l'autre variable ou membre d'une structure. | IDEAL |
TYPE | TYPE nom1 nom2 | Cet opérateur permet de retourner le nombre indiquant la taille ou le type d'une expression. | MASM |
UNKNOWN | UNKNOWN expression | Cet opérateur permet d'enlever le type d'information de l'expression d'adressage. | IDEAL |
WIDTH | WIDTH recordorfieldname | Cet opérateur permet de retourner le nombre de bits que contient un champ dans un enregistrement ou d'un enregistrement. | IDEAL et MASM |
WORD | WORD expression | Cet opérateur permet de forcer l'adressage d'une expression avec un castre d'une taille d'un mot. | IDEAL |
WORD PTR | WORD PTR expression | Cet opérateur permet de forcer l'adressage d'une expression avec un castre d'une taille d'un mot. | IDEAL et MASM |
XOR | expression1 XOR expression2 | Cet opérateur permet d'effectuer un «Ou exclusif binaire». | IDEAL et MASM |
Références
Turbo Assembler - Version 3.2: Quick Reference Guide, Edition Borland International, 1992, Part #11MN-BPL-10-70, BOR 4703, page 5 à 15.