La raison originale de l`utilisation des assembleurs à un passage était la vitesse de montage – souvent une deuxième passe nécessiterait le rembobinage et la relecture de la source du programme sur bande ou la relecture d`un jeu de cartes ou d`une bande de papier perforée. En mode d`adressage direct, la valeur de décalage est spécifiée directement dans le cadre de l`instruction, généralement indiquée par le nom de la variable. Une organisation utilisant un langage assembleur qui a été considérablement étendu à l`aide d`une telle suite de macros peut être considérée comme travaillant dans un langage de niveau supérieur, car ces programmeurs ne fonctionnent pas avec les éléments conceptuels de niveau inférieur d`un ordinateur. Il répète le traitement de l`instruction jusqu`à ce que CX soit zéro. Dans ce cas, il est judicieux d`utiliser un spécificateur de type. Ils définissent le type de données, la longueur et l`alignement des données. L`instruction INC est utilisée pour incrémenter un opérande par un. Jusqu`à présent, nous avons converti ces données d`entrée sous forme ASCII en binaire pour les calculs arithmétiques et converti le résultat en binaire. La substitution des paramètres macro est strictement par nom: au moment du traitement des macros, la valeur d`un paramètre est substituée textuellement à son nom. Vous pouvez avoir plusieurs instructions de définition de données dans un programme.

Lorsque les opérandes sont spécifiés en mode d`adressage mémoire, l`accès direct à la mémoire principale, généralement au segment de données, est requis. Étant donné que le comportement d`un ordinateur est fondamentalement défini par son jeu d`instructions, la façon logique d`apprendre de tels concepts est d`étudier un langage assembleur. Chaque architecture d`ordinateur a son propre langage de machine. Les langages d`assemblage, comme la plupart des autres langages d`ordinateur, permettent d`ajouter des commentaires au code source du programme qui sera ignoré pendant l`assemblage. Par exemple, dans l`opération de multiplication, un opérande est stocké dans EAX ou AX ou AL Registre en fonction de la taille de l`opérande. Ces sections représentent également différents segments de mémoire. Le langage assembleur utilise un mnémonique pour représenter chaque instruction de machine de bas niveau ou OpCode, typiquement aussi chaque registre architectural, drapeau, etc. Les opérandes peuvent être immédiats (valeur codée dans l`instruction elle-même), registres spécifiés dans l`instruction ou implicites, ou les adresses des données situées ailleurs dans le stockage. Ces instructions comparent ou correspondent à des bits des opérandes et définir les drapeaux CF, OF, PF, SF et ZF. Par exemple, considérez le cas du calcul de la factorielle d`un nombre. Le registre de segment de pile ou le registre SS stocke l`adresse de départ de la pile. Le processeur peut accéder à un ou plusieurs octets de mémoire à la fois.