Netwide Assembler

lenguaje de programación
(Redirigido desde «NASM»)

El Netwide Assembler o NASM, es un ensamblador libre para la plataforma Intel x86. Puede ser usado para escribir programas de 16-bit, 32-bit (IA-32) y 64-bit (x86-64). En el NASM, si se usan las bibliotecas correctas, los programas de 32 bits se pueden escribir de una manera tal para que sean portables entre cualquier sistema operativo x86 de 32 bits. El paquete también incluye un desensamblador, el NDISASM.

Netwide Assembler
Nasm
Netwide Assembler.svg
Tipo de programa software libre
lenguaje de programacion
Lenguaje ensamblador x86
Desarrollador Hans Peter Anvin
Autor H. Peter Anvin
Última versión estable 2.15.05 [1]
26 de diciembre de 2018 (2 años, 4 meses y 12 días)
Género Ensamblador
Repositorio http://repo.or.cz/nasm.git
git://repo.or.cz/nasm.git
https://github.com/netwide-assembler/nasm
Programado en C
Sistema operativo multiplataforma
Licencia Licencia BSD de dos cláusulas
En español No

HistoriaEditar

El NASM fue escrito originalmente por Simon Tatham con ayuda de Julian Hall, y actualmente es desarrollado por un pequeño equipo en GitHub que le hace mantenimiento. Fue lanzado originalmente bajo su propia licencia, pero más adelante fue cambiada por la licencia GNU Lesser General Public License, seguido de un número de problemas políticos causado por la selección de la licencia. Por lo que finalmente fue cambiada por la Licencia BSD simplificada.

CaracterísticasEditar

El NASM puede generar varios formatos binarios en cualquier máquina, incluyendo COFF (y el ligeramente diferente formato Portable Executable usado por Microsoft Windows), el a.out, ELF, Mach-O, y el formato binario nativo Minix. El NASM incluso define su propio formato binario, RDOFF, que es usado actualmente solamente por el proyecto del sistema operativo RadiOS).

La variedad de formatos de la salida permite a uno portar los programas a virtualmente cualquier sistema operativo x86. Además, el NASM puede crear archivos binarios planos, usables para escribir Gestores de arranque, imágenes ROM, y varias facetas del desarrollo sistemas operativos. El NASM incluso puede correr en plataformas diferentes del x86, como SPARC y PowerPC, aunque no puede producir programas usables por esas máquinas.

El NASM usa la tradicional sintaxis de Intel para el lenguaje ensamblador x86, mientras que otros ensambladores libres, como el ensamblador del GNU (GAS), utilizan la sintaxis de AT&T. También evita características como la generación automática de sobreescritura (override) de segmentos y la relacionada directiva ASSUME usada por el MASM y los ensambladores compatibles, pues estas pueden ser a menudo confusas -- los programadores deben seguir por sí mismos el contenido de los registros de segmento y la localización de variables a los que éstos se refieren.

LinkingEditar

El NASM produce principalmente código objeto, que por lo general no son ejecutables por sí mismos. La única excepción a esto son los binaries planos (.COM) que son inherentemente limitados en el uso moderno. Para traducir los archivos objeto a programas ejecutables, se debe usar un enlazador apropiado, por ejemplo la utilidad "LINK" del Visual Studio de Windows, o el LD para sistemas similares a UNIX (como GNU/Linux).

Véase tambiénEditar

Enlaces externosEditar

  1. «Release nasm-2.15.05 · netwide-assembler/nasm». GitHub (en inglés). Consultado el 9 de febrero de 2021.