53 votes

Que fait l'instruction d'assemblage ORG ?

Quelqu'un peut-il me donner une description complète de la directive ORG ?
Quand et pourquoi est-il utilisé dans les applications écrites en assembleur ?

Utilisation de Nasm sur x86 ou AMD64.

47voto

Paul R Points 104036

ORG est utilisé pour définir l'assembleur compteur de lieux . Cela peut se traduire ou non par une adresse de chargement au moment de la liaison. Elle peut être utilisée pour définir des adresses absolues, par exemple pour définir quelque chose comme des vecteurs d'interruption qui peuvent avoir besoin d'être à une adresse fixe, ou elle peut être utilisée pour introduire un remplissage ou générer un alignement spécifique pour le code suivant.

9voto

Michael Points 161

ORG est simplement une indication sur l'endroit où placer le prochain morceau de code/données, lié au segment actuel.

Il est inutile de l'utiliser pour des adresses fixes, car l'adresse éventuelle dépend du segment qui n'est pas connu au moment de l'assemblage.

3voto

kanthi kiran Points 31
      During the assemble time ORG directive resets the MLC (memory location counter) to the address specified in the ORG directive.

Syntaxe : ORG note : peut être une valeur absolue non signée ou tout symbole ou symbole + .

exemple:- pour observer le fonctionnement de cette instruction, vous avez besoin de n'importe quel listing assembleur qui utilise la directive ORG.

emplacement
0000A4 00 89 TAB DC 256AL1(*-TAB)
0001A4 00000194 90 ORG TAB+240
000194 F0F1F2F3F4F5F6F7 91 DC C'1234567

Ici, dans l'instruction ci-dessus, le symbole TAB est assigné à l'adresse MLC 0A4. Dans l'instruction suivante, ORG place le MLC à l'emplacement de l'adresse TAB+240 qui est x'194' (~ x'A4' + 240 en décimal). En fait, cette configuration consiste à créer une table de 256 caractères et de stocker quelques constantes de caractères à partir de la 240ème position, afin de pouvoir l'utiliser pour l'instruction TR.

0voto

Unzela Talpur Points 1

ORG signifie origine ORG est utilisé pour un adressage spécifique dans la programmation des microprocesseurs et des microcontrôleurs.

Par exemple :

.org 0000H

Cela signifie que nous voulons démarrer notre programme à partir de l'adresse suivante 0000H l'adresse.

-5voto

Jason Points 1

C'est l'emplacement en mémoire où vous voulez que le programme binaire soit chargé, le cas échéant.

Je préfère ne pas utiliser org, et juste émettre directement le code d'opération/valeur vers le matériel. vous pouvez toujours stocker des valeurs dans ax et transférer entre bx, cx, dx.

J'écris mon propre assembleur pour distribuer des codes d'opération/valeurs sans avoir à se soucier de les envoyer en mémoire avant de les exécuter,

C'est tellement plus rapide d'exécuter les codes d'opération sur place au fur et à mesure qu'ils sont lus, plutôt que d'essayer de les mettre en cache dans la mémoire en risquant de surcharger la pile, ce qui pourrait griller le processeur.

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X