Este es el comando nasm que se puede ejecutar en el proveedor de alojamiento gratuito de OnWorks utilizando una de nuestras múltiples estaciones de trabajo en línea gratuitas, como Ubuntu Online, Fedora Online, emulador en línea de Windows o emulador en línea de MAC OS.
PROGRAMA:
NOMBRE
nasm: el ensamblador Netwide, un ensamblador portátil de 80 x 86
SINOPSIS
nasm [-@ archivo de respuesta] [-f formato] [-o archivo] [-l archivo de lista] [opciones...] nombre del archivo
DESCRIPCIÓN
La nasm comando ensambla el archivo nombre de archivo y dirige la salida al archivo archivar if
especificado. Si archivar no está especificado, nasm derivará un nombre de archivo de salida predeterminado de
el nombre de su archivo de entrada, generalmente agregando '.o' o '.obj', o eliminando todos
extensiones para un archivo binario sin formato. De lo contrario, el nombre del archivo de salida será 'nasm.out'.
OPCIONES
-@ nombre de archivo
Causas nasm para procesar opciones desde el nombre de archivo como si estuvieran incluidas en el comando
la línea.
-a
Causas nasm para ensamblar el archivo de entrada dado sin aplicar primero la macro
preprocesador.
-D|-d macro [= valor]
Predefine una macro de una sola línea.
-E|-e
Causas nasm para preprocesar el archivo de entrada dado y escribir la salida en stdout (o el
nombre de archivo de salida especificado), y en realidad no ensamblar nada.
-f formato
Especifica el formato del archivo de salida. Para ver una lista de formatos de salida válidos, use el -hf
.
-F formato
Especifica el formato de información de depuración. Para ver una lista de formatos de salida válidos, use el
-y opción (por ejemplo yo mismo -y).
-g
Causas nasm para generar información de depuración en el formato seleccionado.
-h
Causas nasm para salir inmediatamente, después de dar un resumen de sus opciones de invocación.
-hf
Igual que -h , pero también enumera todos los formatos de salida válidos.
-I|-i directorio
Agrega un directorio a la ruta de búsqueda para incluir archivos. La especificación del directorio
debe incluir la barra al final, ya que se antepondrá directamente al nombre de la
incluir archivo.
-l archivo de lista
Hace que una lista de ensamblado se dirija al archivo dado, en el que el original
La fuente se muestra en el lado derecho (más la fuente de los archivos incluidos y la
expansiones de macros de varias líneas) y el código generado se muestra en hexadecimal a la izquierda.
-M
Causas nasm para generar dependencias de estilo Makefile en stdout; la salida normal es
suprimido.
-MG presentar
Igual que -M pero asume que las dependencias de Makefile faltantes se generan y se agregan a
lista de dependencias sin prefijo.
-MF presentar
Salida de dependencias de estilo Makefile al archivo especificado.
-MARYLAND presentar
Igual que una combinación de -M y -MF .
-MONTE presentar
Reemplace el nombre predeterminado del destino de dependencia. Este es
normalmente el mismo que el nombre del archivo de salida, especificado por el -o .
-MQ presentar
Lo mismo que -MONTE excepto que intenta citar caracteres que tienen un significado especial en
Sintaxis de Makefile. Esto no es infalible, ya que no todos los caracteres con un significado especial son
citable en Make.
-MP
Emitir un objetivo falso.
-O número
Optimice las compensaciones de las ramas.
· -O0: Sin optimización
· -O1: Optimización mínima
· -Buey: Optimización de múltiples pasadas (predeterminado)
-o archivar
Especifica un nombre preciso para el archivo de salida, anulando nasmmedio predeterminado de
determinarlo.
-P|-p presentar
Especifica un archivo que se incluirá previamente, antes de que el archivo de origen principal comience a ser
procesado.
-s
Causas nasm para enviar sus mensajes de error y / o texto de ayuda a stdout en lugar de stderr.
-t
Causas nasm para ensamblar en modo compatible con SciTech TASM.
-U|-u macro
Elimina la definición de una macro de una sola línea.
-v
Causas nasm para salir inmediatamente, después de mostrar su número de versión.
* -W [no-] foo '
Causas nasm para habilitar o deshabilitar ciertas clases de mensajes de advertencia, en gcc-like
estilo, por ejemplo -Etiquetas-Worphan or -Wno-etiquetas-huérfanas.
-w[+ -] foo
Causas nasm para habilitar o deshabilitar ciertas clases de mensajes de advertencia, por ejemplo
-w + etiquetas-huérfanas or -w-macro-parámetros.
-X formato
Especifica el formato de informe de errores (gnu o vc).
-y
Causas nasm para enumerar los formatos de depuración admitidos.
-Z nombre de archivo
Causas nasm para redirigir los mensajes de error a nombre de archivo. Esta opción existe para apoyar
sistemas operativos en los que stderr no se redirige fácilmente.
--prefijo, --postfix
Anteponga o agregue (respectivamente) el argumento dado a todas las variables globales o externas.
SINTAXIS
Esta página de manual no describe completamente la sintaxis de nasmes el lenguaje ensamblador, pero no
dar un resumen de las diferencias con otros ensambladores.
Registros no tienen el signo '%' inicial, a diferencia de Natural, y los registros de pila de coma flotante son
denominado st0, st1, Y así sucesivamente.
Punto flotante las instrucciones puede utilizar la forma de un solo operando o la doble. A A
se proporciona la palabra clave; por lo tanto, uno podría escribir
fadd st0, st1
fadd st1, st0
o se pueden usar las formas alternativas de un solo operando
moda st1
fadd a st1
Sin inicializar STORAGE está reservado usando el RESB, RESUMEN, RESD, REQ, REST y REGRESO
pseudo-opcodes, cada uno tomando un parámetro que da el número de bytes, palabras,
palabras dobles, cuádruples o palabras de diez bytes para reservar.
Repetición de elementos de datos no es realizado por el DUP palabra clave como se ve en ensambladores de DOS, pero por
el uso de la DE ENTREGA prefijo, así:
mensaje: multiplicado por 3 db 'abc'
veces 64 - $ + mensaje db 0
que define la cadena abcabcabc, seguida del número correcto de cero bytes para hacer el
longitud total hasta 64 bytes.
Símbolo referencias siempre se entienden como inmediatos (es decir, la dirección del símbolo),
a menos que se utilicen corchetes, en cuyo caso el contenido de la ubicación de memoria se
usó. Por lo tanto:
mov ax, wordvar
carga AX con la dirección de la variable wordvar, mientras que
mov ax, [wordvar]
mov ax, [wordvar + 1]
mov ax, [es: wordvar + bx]
todos se refieren al contenido de ubicaciones de memoria. Las sintaxis
mov ax, es: wordvar [bx]
es mov ax, wordvar [1]
no son legales en absoluto, aunque el uso de un nombre de registro de segmento como prefijo de instrucción
es válido y se puede utilizar con instrucciones como LODSB que no se puede anular
Otra manera.
Constantes puede expresarse numéricamente en la mayoría de los formatos: una H, Q o B al final denota hexadecimal,
octal o binario respectivamente, y un '0x' o '$' inicial también denota hexadecimal. Ceros a la izquierda
no se tratan especialmente en absoluto. Las constantes de caracteres pueden estar encerradas en simples o dobles
citas; no hay carácter de escape. El orden es little-endian (invertido), de modo que
el carácter constante 'a B C D'denota 0x64636261 y no 0x61626364.
Las etiquetas locales comienzan con un punto y su 'localidad' es otorgada por el ensamblador.
anteponiendo el nombre del símbolo no local anterior. Por lo tanto, declarando una etiqueta '.loop' después de
una etiqueta 'etiqueta' en realidad ha definido un símbolo llamado 'etiqueta.loop'.
DIRECTIVAS
SECCIÓN nombre or SEGMENTO nombre causas nasm para dirigir todo el código siguiente al nombre
sección. Los nombres de las secciones varían con el formato del archivo de salida, aunque la mayoría de los formatos admiten la
nombres .text, .datos y .bss. (La excepción es la obj formato, en el que todos los segmentos son
definible por el usuario.)
ABSOLUTA de facturación causas nasm para colocar su punto de reunión teórico en un absoluto
dirección: por lo que no se pueden generar códigos o datos, pero puede usar RESB, RESUMEN y RESD para mover
el punto de ensamblaje más adelante, y puede definir etiquetas. Por tanto, esta directiva se puede utilizar para
definir estructuras de datos. Cuando haya terminado de realizar el montaje absoluto, debe emitir
una alternativa, SECCIÓN directiva para volver al montaje normal.
BITS 16, BITS 32 or BITS 64 cambia el modo de procesador predeterminado para el que nasm is
generar código: es equivalente a USA 16 or USA 32 en ensambladores de DOS.
EXTERNO símbolo y GLOBAL símbolo importar y exportar definiciones de símbolos, respectivamente, de
ya otros módulos. Tenga en cuenta que el GLOBAL directiva debe aparecer antes de la definición de
el símbolo al que se refiere.
ESTRUCCIÓN nombreestructura y ESTRUCTURA FINAL, cuando se utiliza para poner entre paréntesis una serie de RESB, RESUMEN o similar
instrucciones, defina una estructura de datos. Además de definir las compensaciones de la
miembros de la estructura, la construcción también define un símbolo para el tamaño de la estructura,
que es simplemente el nombre de la estructura con tamaño clavado hasta el final.
FORMATO ESPECÍFICO DIRECTIVAS
ORG de facturación es utilizado por el papelera formato de salida binaria de forma plana y especifica la dirección
en el que eventualmente se cargará el código de salida.
nombregrp seg1 seg2... es utilizado por el formato de salida obj (Microsoft 16-bit), y
define grupos de segmentos. Este formato también usa MAYÚSCULAS, que dirige que todos los segmentos,
Los nombres de grupos y símbolos que se envían al archivo de objeto deben estar en mayúsculas. Tenga en cuenta que el
El ensamblaje real aún distingue entre mayúsculas y minúsculas.
LIBRERÍA nombrelib es utilizado por el rdf formato de salida, y hace que un registro de dependencia sea
escrito en el archivo de salida que indica que el programa requiere una cierta biblioteca en
para correr.
MACRO PREPROCESADOR
Las macros de una sola línea se definen mediante el %definir or % idefine comandos, de forma similar
moda al preprocesador C. Pueden estar sobrecargados con respecto al número de
parámetros, aunque definir una macro sin parámetros impide la definición de cualquier
macro con el mismo nombre tomando parámetros, y viceversa. %definir define macros cuyo
los nombres coinciden con distinción entre mayúsculas y minúsculas, mientras que % idefine define macros que no distinguen entre mayúsculas y minúsculas.
Las macros multilínea se definen utilizando %macro y % imacro (la distinción es la misma que
que entre %definir y % idefine), cuya sintaxis es la siguiente
% nombre de macro minprm [-maxprm] [+] [. nolist] [valores predeterminados]
% endmacro
Nuevamente, estas macros pueden estar sobrecargadas. El signo más al final indica que cualquier
los parmetros posteriores al ltimo quedan subsumidos, con sus comas de separacin, en el ltimo
parámetro. los por defecto La parte se puede utilizar para especificar valores predeterminados para una macro no especificada.
parámetros después minparam. % endm es un sinónimo válido de % endmacro.
Para hacer referencia a los parámetros de macro dentro de una expansión de macro, utilice %1, %2 etcétera. usted
también puede hacer cumplir que un parámetro macro debe contener un código de condición mediante el uso de % + 1 y
puede invertir el código de condición usando -1%. También puede definir una etiqueta específica para un
invocación de macros prefijándola con un signo doble '%'.
Los archivos se pueden incluir usando el %incluir directiva, que funciona como C.
El preprocesador tiene una 'pila de contexto', que puede ser utilizada por una macro para almacenar
información que recuperará uno posterior. Puede empujar un contexto en la pila usando
%empujar, elimine uno usando %música popy cambie el nombre del contexto superior (sin molestar
cualquier definición asociada) usando % de respuesta. Etiquetas y %definir macros específicas para la parte superior
El contexto se puede definir prefijando sus nombres con% $, y cosas específicas para el siguiente
contexto hacia abajo con% $$, y así sucesivamente.
El montaje condicional se realiza mediante % ifdef, % ifndef, %demás y %terminara si como en C.
(Excepto eso % ifdef puede aceptar varios nombres de macros putativos, y evaluará VERDADERO si alguno
de ellos está definido.) Además, las directivas % ifctx y % ifnctx puede ser usado para
condición en el nombre del contexto superior en la pila de contexto. El conjunto obvio de
directivas 'else-if', % elifdef, % elifndef, % elifctx y % elifnctx También son compatibles.
Use nasm en línea usando los servicios de onworks.net