bonjour , svp on veut dire quoi par label ou étiquette en langage assembleur ? et comment l'utiliser ?
bonjour , svp on veut dire quoi par label ou étiquette en langage assembleur ? et comment l'utiliser ?
Bonjour,
« Label » est le terme anglo-saxon signifiant « étiquette » en français.
Il s'agit d'un nom que tu vas placer en tout début de ligne, généralement suivi d'un deux-points « : » et qui précède le mnémonique :
Code ASM : Sélectionner tout - Visualiser dans une fenêtre à part etiquette: mov ax,1234h
Cette étiquette est un symbole qui prend automatiquement pour valeur l'adresse en mémoire de la ligne concernée. Ceci te permet ensuite de faire soit des sauts vers l'endroit en question (« jmp etiquette »), soit de connaître cette adresse pour y écrire des données ou pour faire un traitement à l'exécution.
Code ASM : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4 mov ax,1234h mov [donnees],ax donnees: db 0
Seule exception, les « equates » (avec « EQU ») où, dans ce cas, l'étiquette prend pour valeur celle du paramètre. Par exemple :
Code : Sélectionner tout - Visualiser dans une fenêtre à part magic equ 055aah
Ici, « magic » sera donc équivalent à 0x55aa.
Est-ce qu'il s'agit d'un devoir ?
Bonjour Obsidian,
La discussion a 5 petites années, mais saurais-tu me dire à quoi sert "equ" ?
Je débute tout juste en asm, (je prévois d'utiliser GNU as) et je suis juste curieux. ^^
Amicalement,
Ben.
equ -> equal c'est à dire égal tout simplement.
Ma page sur developpez.com : http://chrtophe.developpez.com/ (avec mes articles)
Mon article sur le P2V, mon article sur le cloud
Consultez nos FAQ : Windows, Linux, Virtualisation
Plus précisément, cela veut dire « equates », avec un T et à la troisième personne, qui a un sens un peu plus large en anglais que le simplement « égaler ».
C'est donc une directive qui permet de définir la valeur d'un symbole et c'est pratique pour déclarer des constantes, spécialement en tête de fichier, que l'on peut modifier ensuite à sa convenance.
C'est un peu ce que l'on fait avec #define en C mais généralement, les assembleurs exigent que l'expression en paramètre soit immédiatement évaluable et que l'on puisse directement affecter une valeur numérique au symbole concerné. On ne peut pas s'en servir pour définir des macros. Il faut un « macro-assembleur » pour cela. À la grande époque de l'assembleur (les années 1980) c'était un luxe mais aujourd'hui, tous les assembleurs modernes en sont capables.
Je rajouterai modestement que equ étant une directive, ce n'est pas quelque chose qui fait partie du jeu d'instructions du microprocesseur, tout comme db dans l'exemple plus haut qui veut dire define byte pour que l'assembleur sache qu'il doit mettre là un octet tel quel.
Vous avez un bloqueur de publicités installé.
Le Club Developpez.com n'affiche que des publicités IT, discrètes et non intrusives.
Afin que nous puissions continuer à vous fournir gratuitement du contenu de qualité, merci de nous soutenir en désactivant votre bloqueur de publicités sur Developpez.com.
Partager