Il s'agit de la commande nasm qui peut être exécutée dans le fournisseur d'hébergement gratuit OnWorks en utilisant l'un de nos multiples postes de travail en ligne gratuits tels que Ubuntu Online, Fedora Online, l'émulateur en ligne Windows ou l'émulateur en ligne MAC OS
PROGRAMME:
Nom
nasm - le Netwide Assembler, un assembleur portable 80x86
SYNOPSIS
Nasm [-@ fichier de réponses] [-f formater] [-o fichier de sortie] [-l fichier liste] [Options...] nom de fichier
DESCRIPTION
Le manuel de formation Nasm la commande assemble le fichier nom de fichier et dirige la sortie vers le fichier fichier de sortie if
spécifié. Si fichier de sortie n'est pas spécifié, Nasm dérivera un nom de fichier de sortie par défaut de
le nom de son fichier d'entrée, généralement en ajoutant '.o' ou '.obj', ou en supprimant tout
extensions pour un fichier binaire brut. A défaut, le nom du fichier de sortie sera 'nasm.out'.
OPTIONS
-@ nom de fichier
Causes Nasm pour traiter les options du nom de fichier comme si elles étaient incluses dans la commande
ligne.
-a
Causes Nasm pour assembler le fichier d'entrée donné sans appliquer d'abord la macro
préprocesseur.
-D|-d macro[=valeur]
Prédéfinit une macro sur une seule ligne.
-E|-e
Causes Nasm pour prétraiter le fichier d'entrée donné et écrire la sortie dans Stdout (Ou l'
nom de fichier de sortie spécifié) et n'assemble rien en fait.
-f le format
Spécifie le format de fichier de sortie. Pour voir une liste des formats de sortie valides, utilisez le -hf
option.
-F le format
Spécifie le format des informations de débogage. Pour voir une liste des formats de sortie valides, utilisez le
-y option (par exemple -felf -y).
-g
Causes Nasm pour générer des informations de débogage dans le format sélectionné.
-h
Causes Nasm pour quitter immédiatement, après avoir donné un résumé de ses options d'invocation.
-hf
Pareil que -h , mais répertorie également tous les formats de sortie valides.
-I|-i annuaire
Ajoute un répertoire au chemin de recherche des fichiers d'inclusion. La spécification du répertoire
doit inclure la barre oblique de fin, car elle sera directement ajoutée au nom du
inclure le fichier.
-l fichier de liste
Une liste d'assemblys est dirigée vers le fichier donné, dans lequel l'original
la source est affichée sur le côté droit (plus la source des fichiers inclus et le
extensions de macros multilignes) et le code généré est affiché en hexadécimal sur la gauche.
-M
Causes Nasm pour sortir les dépendances de style Makefile sur stdout ; la sortie normale est
supprimée.
-MG filet
Pareil que -M mais suppose que les dépendances manquantes de Makefile sont générées et ajoutées à
liste de dépendances sans préfixe.
-MF filet
Sortez les dépendances de style Makefile dans le fichier spécifié.
-MARYLAND filet
Identique à une combinaison de -M et -MF options.
-MT filet
Remplacez le nom par défaut de la cible de dépendance Nom de la cible de dépendance. C'est
normalement le même que le nom du fichier de sortie, spécifié par le -o option.
-MQ filet
Le même que -MT sauf qu'il essaie de citer des caractères qui ont une signification particulière dans
Syntaxe du makefile. Ce n'est pas infaillible, car tous les caractères ayant une signification particulière ne sont pas
citable dans Make.
-MP
Émettre une cible bidon.
-O nombre
Optimisez les décalages de branches.
· -O0: Pas d'optimisation
· -O1: Optimisation minimale
· -Bœuf: Optimisation multipasse (par défaut)
-o fichier de sortie
Spécifie un nom précis pour le fichier de sortie, remplaçant Nasmles moyens par défaut de
le déterminer.
-P|-p filet
Spécifie un fichier à pré-inclure, avant que le fichier source principal ne commence à être
traité.
-s
Causes Nasm pour envoyer ses messages d'erreur et/ou son texte d'aide à stdout au lieu de stderr.
-t
Causes Nasm à assembler en mode compatible SciTech TASM.
-U|-u macro
Dédéfinit une macro sur une seule ligne.
-v
Causes Nasm pour quitter immédiatement, après avoir affiché son numéro de version.
*-W[no-]foo'
Causes Nasm pour activer ou désactiver certaines classes de messages d'avertissement, à la manière de gcc
style, par exemple -Worphan-étiquettes or -Wno-orphelin-étiquettes.
-w[+-]toto
Causes Nasm pour activer ou désactiver certaines classes de messages d'avertissement, par exemple
-w+étiquettes-orphelines or -w-macro-paramètres.
-X le format
Spécifie le format de rapport d'erreur (gnu ou vc).
-y
Causes Nasm pour répertorier les formats de débogage pris en charge.
-Z nom de fichier
Causes Nasm pour rediriger les messages d'erreur vers nom de fichier. Cette option existe pour prendre en charge
systèmes d'exploitation sur lesquels stderr n'est pas facilement redirigé.
--préfixe, --postfix
Ajouter ou ajouter (respectivement) l'argument donné à toutes les variables globales ou externes.
SYNTAXE
Cette page de manuel ne décrit pas complètement la syntaxe de Nasmle langage d'assemblage de , mais ne
donner un résumé des différences par rapport aux autres assembleurs.
Enregistre n'ont pas de signe '%' en tête, contrairement gaz, et les registres de pile à virgule flottante sont
dénommé st0, st1, Et ainsi de suite.
Point flottant Des instructions peut utiliser soit la forme à opérande simple, soit la forme double. UNE À
le mot-clé est fourni ; ainsi, on pourrait soit écrire
à la mode st0, st1
à la mode st1, st0
ou on pourrait utiliser les formes alternatives à opérande unique
à la mode st1
Fadd à st1
Non initialisé storage est réservé à l'aide du CRES, RÉPONDRE, REDD, RESQ, REST et RESO
pseudo-opcodes, chacun prenant un paramètre qui donne le nombre d'octets, de mots,
mots doubles, mots quadruples ou mots de dix octets à réserver.
Répétition des éléments de données n'est pas effectuée par le DUP mot-clé comme vu dans les assembleurs DOS, mais par
l'utilisation du TEMPS préfixe, comme ceci :
message : fois 3 db 'abc'
fois 64-$+db de message 0
qui définit la chaîne abcabcabc, suivie du bon nombre d'octets zéro pour faire le
longueur totale jusqu'à 64 octets.
Symbole sont toujours comprises comme immédiates (c'est-à-dire l'adresse du symbole),
sauf si des crochets sont utilisés, auquel cas le contenu de l'emplacement mémoire est
utilisé. Ainsi:
mov hache, wordvar
charge AX avec l'adresse de la variable wordvar, alors que
mov hache,[wordvar]
mov hache,[wordvar+1]
mov hache,[es:wordvar+bx]
se réfèrent tous au contenu d'emplacements de mémoire. Les syntaxes
mov hache,es:wordvar[bx]
es mov hache, wordvar[1]
ne sont pas du tout légaux, bien que l'utilisation d'un nom de registre de segment comme préfixe d'instruction
est valide et peut être utilisé avec des instructions telles que LODSB qui ne peut pas être outrepassé
autrement.
Constants peut être exprimé numériquement dans la plupart des formats : un H, Q ou B de fin indique un hexadécimal,
octal ou binaire respectivement, et un « 0x » ou « $ » au début indique également un hexadécimal. Zéros de tête
ne sont pas du tout traités spécialement. Les constantes de caractères peuvent être entourées de caractères simples ou doubles
devis; il n'y a pas de caractère d'échappement. L'ordre est petit-boutiste (inversé), de sorte que
la constante de caractère 'a B c d' désigne 0x64636261 et non 0x61626364.
Les étiquettes locales commencent par un point et leur « localité » est accordée par l'assembleur
avant le nom du symbole non local précédent. Déclarant ainsi une étiquette '.loop' après
une étiquette 'label' a en fait défini un symbole appelé 'label.loop'.
DIRECTIVES
SECTION prénom or SEGMENT prénom les causes Nasm pour diriger tout le code suivant vers le nom
section. Les noms de section varient selon le format de fichier de sortie, bien que la plupart des formats prennent en charge le
noms .text, .Les données et .bss. (L'exception est le obj format, dans lequel tous les segments sont
définissable par l'utilisateur.)
ABSOLUTE propos les causes Nasm de positionner son point d'assemblage notionnel à un point absolu
adresse : donc aucun code ou donnée ne peut être généré, mais vous pouvez utiliser CRES, RÉPONDRE et REDD se déplacer
le point d'assemblage plus loin, et vous pouvez définir des étiquettes. Cette directive peut donc être utilisée pour
définir des structures de données. Lorsque vous avez fini de faire l'assemblage absolu, vous devez émettre
une SECTION directive pour revenir à l'assemblage normal.
BITS 16, BITS 32 or BITS 64 change le mode de processeur par défaut pour lequel Nasm is
générer du code : c'est équivalent à UTILISATION16 or UTILISATION32 dans les assembleurs DOS.
EXTERNE symbole et GLOBAL symbole importer et exporter des définitions de symboles, respectivement, à partir de
et à d'autres modules. Notez que le GLOBAL directive doit apparaître avant la définition de
le symbole auquel il fait référence.
STRUCTURE nom_structure et FIN DE STRUCTURE, lorsqu'il est utilisé pour mettre entre parenthèses un certain nombre de CRES, RÉPONDRE ou similaire
instructions, définir une structure de données. En plus de définir les décalages des
membres de la structure, la construction définit également un symbole pour la taille de la structure,
qui est simplement le nom de la structure avec longueur du câble accroché jusqu'au bout.
SPÉCIFIQUE AU FORMAT DIRECTIVES
ORG propos est utilisé par le coffre format de sortie binaire plat et spécifie l'adresse
auquel le code de sortie sera finalement chargé.
GROUPE nom_groupe sec1 sec2... est utilisé par le format de sortie obj (Microsoft 16 bits), et
définit des groupes de segments. Ce format utilise également MAJUSCULE, qui dirige que tout le segment,
les noms de groupe et de symbole sortis dans le fichier objet doivent être en majuscules. Notez que le
l'assemblage réel est toujours sensible à la casse.
BIBLIOTHÈQUE nomlib est utilisé par le rdf format de sortie et provoque la création d'un enregistrement de dépendance
écrit dans le fichier de sortie qui indique que le programme nécessite une certaine bibliothèque dans
ordre de courir.
MACRO PRÉPROCESSEUR
Les macros sur une seule ligne sont définies à l'aide de la %définir or %définir commandes, d'une manière similaire
mode au préprocesseur C. Ils peuvent être surchargés en nombre de
paramètres, bien que la définition d'une macro sans paramètre empêche la définition de tout
macro du même nom prenant des paramètres, et vice versa. %définir définit des macros dont
les noms correspondent à la casse, alors que %définir définit les macros insensibles à la casse.
Les macros multilignes sont définies à l'aide de %macro et %macro (la distinction est la même que
qu'entre %définir et %définir), dont la syntaxe est la suivante
%nom de la macro minprm[-maxprm][+][.nolist] [valeurs par défaut]
%finmacro
Encore une fois, ces macros peuvent être surchargées. Le signe plus de fin indique que tout
les paramètres après le dernier sont subsumés, avec leurs virgules de séparation, dans le dernier
paramètre. le par défaut la partie peut être utilisée pour spécifier les valeurs par défaut pour une macro non spécifiée
paramètres après paramètre min. %fin est un synonyme valide pour %finmacro.
Pour faire référence aux paramètres de macro dans une extension de macro, vous utilisez %1, %2 etc. Tu
peut également imposer qu'un paramètre de macro doit contenir un code de condition en utilisant %+1et
vous pouvez inverser le code de condition en utilisant -1%. Vous pouvez également définir une étiquette spécifique à un
l'invocation de la macro en la préfixant d'un double signe '%'.
Les fichiers peuvent être inclus en utilisant le %comprendre directive, qui fonctionne comme C.
Le préprocesseur a une « pile contextuelle », qui peut être utilisée par une macro pour stocker
informations qu'une version ultérieure récupérera. Vous pouvez pousser un contexte sur la pile en utilisant
%pousser, supprimez-en un en utilisant %populaire, et changez le nom du contexte supérieur (sans déranger
définitions associées) en utilisant %rép.. Etiquettes et %définir macros spécifiques au top
le contexte peut être défini en préfixant leurs noms avec %$, et des choses spécifiques au suivant
contexte vers le bas avec %$$, et ainsi de suite.
L'assemblage conditionnel se fait au moyen de %ifdef, %ifndef, %autre et %fin si comme chez C.
(Excepté %ifdef peut accepter plusieurs noms de macro putatifs et évaluera TRUE le cas échéant
d'entre eux est défini.) En outre, les directives %ifctx et %ifnctx peut être utilisé pour
condition sur le nom du contexte supérieur sur la pile de contextes. L'ensemble évident de
les directives "sinon si", %elifdef, %elifndef, %eliftx et %elifnctx sont également pris en charge.
Utiliser nasm en ligne en utilisant les services onworks.net