Está en la página 1de 16

ndice

Introduccin ........................................................................................... pg. 3


ASM ........................................................................................................ pg. 4
Sun SPARC.............................................................................................. pg. 6
PA RISC .................................................................................................. pg. 8
Lenguaje Ensamblador x86...................................................................... pg. 10
Microsoft Macro Assembler .................................................................... pg. 12
Netwide Assembler ................................................................................. pg. 14
Turbo Assembler ..................................................................................... pg. 16
Flat Assembler......................................................................................... pg. 17
Conclusiones ........................................................................................... pg. 18
Bibliografa ............................................................................................. pg. 19

Introduccin
La importancia del lenguaje ensamblador es principalmente
que se trabaja directamente con el microprocesador; por lo
cual se debe de conocer el funcionamiento interno de este,
tiene la ventaja de que en l se puede realizar cualquier tipo de
programas que en los lenguajes de alto nivel no lo pueden
realizar. Otro punto sera que los programas en ensamblador
ocupan menos espacio en memoria.
A pesar de su antiguo uso y en el auge de los lenguajes de
alto nivel de la actualidad, el uso de lenguajes ensambladores
se restringe bsicamente a un solo propsito: el manejo
detallado y exhaustivo de los componentes de una arquitectura
de computadora, manejos que muy difcilmente un lenguaje de
alto nivel puede realizar, a pesar el grado de conocimiento por
parte del programador en cuanto a hardware se refiere.
Exponemos a continuacin una breve resea de algunos
lenguajes ensambladores que tuvieron su principal uso entre
las dcadas de los 50 - 90, se detallan algunos eventos
histricos y acerca de sus creadores quienes forjaron el camino
hacia el actual mundo de la programacin.

Joel Ramos |

Lenguajes de Programacin en Ensamblador

ASM
El lenguaje ensamblador, o assembler (assembly language en ingls), es un lenguaje de
programacin de bajo
nivel para
los computadores, microprocesadores, microcontroladores y
otros circuitos
integradosprogramables. Implementa una representacin simblica de los cdigos de
mquina binarios y otras constantes necesarias para programar una arquitectura dada
de CPU y constituye la representacin ms directa del cdigo mquina especfico para
cada arquitectura legible por un programador. Esta representacin es usualmente
definida por el fabricante de hardware, y est basada en los mnemnicos que
simbolizan los pasos de procesamiento (las instrucciones), los registros del procesador, las
posiciones de memoria y otras caractersticas del lenguaje. Un lenguaje ensamblador es
por lo tanto especfico de cierta arquitectura de computador fsica (o virtual). Esto est en
contraste con la mayora de los lenguajes de programacin de alto nivel, que idealmente
son porttiles.
Un programa utilitario llamado ensamblador es usado para traducir sentencias del
lenguaje ensamblador al cdigo de mquina del computador objetivo. El ensamblador
realiza una traduccin ms o menos isomorfa(un mapeo de uno a uno) desde las
sentencias mnemnicas a las instrucciones y datos de mquina. Esto est en contraste con
los lenguajes de alto nivel, en los cuales una sola declaracin generalmente da lugar a
muchas instrucciones de mquina.
Muchos sofisticados ensambladores ofrecen mecanismos adicionales para facilitar el
desarrollo del programa, controlar el proceso de ensamblaje, y la ayuda de depuracin.
Particularmente, la mayora de los ensambladores modernos incluyen una facilidad
de macro (descrita ms abajo), y son llamados macro ensambladores.
Fue usado principalmente en los inicios del desarrollo de software, cuando an no se
contaba con potentes lenguajes de alto nivel y los recursos eran limitados. Actualmente se
utiliza con frecuencia en ambientes acadmicos y de investigacin, especialmente cuando
se requiere la manipulacin directa de hardware, alto rendimiento, o un uso de recursos
controlado y reducido.
Muchos dispositivos programables (como los microcontroladores) an cuentan con el
ensamblador como la nica manera de ser manipulados.

Joel Ramos |

Lenguajes de Programacin en Ensamblador

Caractersticas

El cdigo escrito en lenguaje ensamblador posee una cierta dificultad de ser


entendido ya que su estructura se acerca al lenguaje mquina, es decir, es un
lenguaje de bajo nivel.
El lenguaje ensamblador es difcilmente portable, es decir, un cdigo escrito para
un microprocesador, puede necesitar ser modificado, para poder ser usado en otra
mquina distinta. Al cambiar a una mquina con arquitectura diferente,
generalmente es necesario reescribirlo completamente.
Los programas hechos por un programador experto en lenguaje ensamblador son
generalmente mucho ms rpidos y consumen menos recursos del sistema
(memoria RAM y ROM) que el programa equivalente compilado desde un lenguaje
de alto nivel. Al programar cuidadosamente en lenguaje ensamblador se pueden
crear programas que se ejecutan ms rpidamente y ocupan menos espacio que
con lenguajes de alto nivel.
Con el lenguaje ensamblador se tiene un control muy preciso de las tareas
realizadas por un microprocesador por lo que se pueden crear segmentos de
cdigo difciles y/o muy ineficientes de programar en un lenguaje de alto nivel, ya
que, entre otras cosas, en el lenguaje ensamblador se dispone de instrucciones del
CPU que generalmente no estn disponibles en los lenguajes de alto nivel.
Tambin se puede controlar el tiempo en que tarda una rutina en ejecutarse, e
impedir que se interrumpa durante su ejecucin.

Joel Ramos |

Lenguajes de Programacin en Ensamblador

Sun SPARC
SPARC (del ingls Scalable Processor ARChitecture) es una arquitectura RISC big-endian.
Es decir, una arquitectura con un conjunto de instrucciones reducidas.
Fue originalmente diseada por Sun Microsystems y dirigido por el ingeniero Kaa
en 1985, se basa en los diseos RISC I y II de la Universidad de California en Berkeley que
fueron definidos entre los aos 1980 y 1982.
La empresa Sun Microsystems dise esta arquitectura y la licenci a otros fabricantes
como Texas Instruments, Cypress Semiconductor, Fujitsu, LSI Logic entre otros.
SPARC es la primera arquitectura RISC abierta y como tal, las especificaciones de diseo
estn publicadas, as otros fabricantes de microprocesadores pueden desarrollar su propio
diseo.
Una de las ideas innovadoras de esta arquitectura es la ventana de registros que permite
hacer fcilmente compiladores de alto rendimiento y una significativa reduccin de
memoria en las instrucciones load/store en relacin con otras arquitecturas RISC. Las
ventajas se aprecian sobre todo en programas grandes.
La cpu SPARC est compuesta de una unidad entera, UI (Integer Unit) que procesa la
ejecucin bsica y una FPU (Floating-Point Unit) que ejecuta las operaciones y clculos de
reales. La IU y la FPU pueden o no estar integradas en el mismo chip.
Aunque no es una parte formal de la arquitectura, las computadoras basadas
en sistemas SPARC de Sun Microsystems tienen una unidad de manejo de memoria
(MMU) y un gran cach de direcciones virtuales (para instrucciones y datos) que estn
dispuestos perifricamente sobre un bus de datos y direcciones de 32 bits.
Principales caractersticas

Su caracterstica distintiva es utilizar ventanas de registros.


32 registros de "enteros" de 32 bits.
16 registros de punto flotante de 64 bits (para el caso de doble precisin) que se
pueden utilizar como 32 registros de 32 bits (para precisin simple).
Modos de direccionamiento:
Inmediato, (constantes de 13 bits).
Directo, (offset de 13 bits).
Indirecto, (registro + offset de 13 bits o registro + registro).

Joel Ramos |

Lenguajes de Programacin en Ensamblador

Utiliza instrucciones retardadas (saltos, load y store ).


Manejo de memoria:
Espacio virtual de 4 Gigabytes.
Unidad de manejo de memoria (MMU) que trabaja con pginas de tamao
configurable.

Categoras de Instrucciones
La arquitectura SPARC tiene cerca de 50 instrucciones enteras, unas pocas ms que el
anterior diseo RISC, pero menos de la mitad del nmero de instrucciones enteras del
6800 de Motorola.
Las instrucciones de SPARC se pueden clasificar en cinco categoras:
LOAD y STORE (La nica manera de acceder a la memoria). Estas instrucciones usan dos
registros o un registro y una constante para calcular la direccin de memoria a
direccionar.
Instrucciones Aritmticas/Lgicas/Shift. Ejecutan operaciones aritmticas, lgicas y de
desplazamiento de bits. Estas instrucciones calculan el resultado si es una funcin de 2
operandos y guardan el resultado en un registro.
Operaciones del Coprocesador. La IU extrae las operaciones de punto flotante desde las
instrucciones del bus de datos y los coloca en la cola para la FPU. La FPU ejecuta los
clculos de punto flotante con un nmero fijo en unidad aritmtica de punto flotante, (el
nmero es dependiente de la aplicacin). Las operaciones de punto flotante son
ejecutadas concurrentemente con las instrucciones de la IU y con otras operaciones de
punto flotante cuando es necesario. La arquitectura SPARC tambin especifica una
interfaz para la conexin de un coprocesador adicional.
Instrucciones de Control de Transferencia. Estas incluyen jumps, calls, traps y branches.
El control de transferencia es retardado usualmente hasta despus de la ejecucin de la
prxima instruccin, as el pipeline no es vaciado porque ocurre un control de tiempo. De
este modo, los compiladores pueden ser optimizados por ramas retardadas.
Instrucciones de control de registros Read/Write. Estas instrucciones se incluyen para
leer y grabar el contenido de varios registros de control. Generalmente la fuente o destino
est implcito en la instruccin.

Joel Ramos |

Lenguajes de Programacin en Ensamblador

PA-RISC
PA-RISC es el nombre por el que se conoce una arquitectura de microprocesadores
desarrollada por sistemas Hewlett-Packard y VLSI Technology Operation. Esta arquitectura
se basa en el modelo RISC y en PA (Precision Architecture). Tambin se suelen referir a ella
como la arquitectura HP/PA, Hewlett Packard Precision Architecture. PA se desarrolla
en Palo Alto, donde se encuentra la central de HP.
A finales de los 80, HP comenz a construir dos series de computadores, ambas basadas
en CISC. Una de ellas es la serie HP 9000 de estaciones de trabajo Unix, basadas en el
microprocesador Motorola 68000. La otra serie era la serie HP 3000 de
minicomputadoras, basadas en un diseo de CPU de HP de 16 bits.
Los primeros PA-RISC fueron dispositivos de 32 bits. Se usaron por primera vez en las
ltimas series de HP 3000, la 930 y la 950, comnmente conocidos como
sistemas Spectrum (nombre que le pusieron en los laboratorios de HP). Estas mquinas
corran sobre MPE/iX. La serie HP 9000 se actualiz tambin a la arquitectura PARISC recin creada, pero en esta serie se trabajaba sobre HP-UX.
Otros sistemas operativos que se pueden usar sobre arquitecturas PA-RISC son Mach
kernel, Linux, OpenBSD, NetBSD y FreeBSD entre otros.
Una caracterstica interesante de PA-RISC es que la mayora de sus microprocesadores
no tiene cach L2. En su lugar se implementaba una cach L1 mayor, formada por chips
separados conectados al microprocesador a travs de un bus(actualmente est integrada
en el propio chip). Slo el modelo PA-7300LC tiene cach L2. Otra innovacin de esta
arquitectura fue la adicin de un repertorio de instruccin multimedia (SIMD) conocido
como MAX e introducido por primera vez en el 7100LC.
El diseo fue actualizado en 1996 en la versin 2.0 de la arquitectura. La nueva versin
era una arquitectura de 64 bits, implementada en la serie PA-8000 de HP. Contaba con 10
unidades funcionales y un nuevo sistema de segmentacin de cauce. Otro cambio que se
introdujo fue la separacin de la cach de instrucciones en dos, dependiendo del tiempo
de ejecucin de las instrucciones que iban a ir almacenadas en ellas. El PA-8200 fue
lanzado por HP en 1997 y contaba con algunas mejoras sobre el PA-8000, como una
mejora prediccin en los saltos y cachs ms grandes, ms rpidas y con unos algoritmos
de prediccin ms eficientes.

Joel Ramos |

Lenguajes de Programacin en Ensamblador

El PA-8500 fue el primero en el cual se aadi la cache al encapsulado del


microprocesador. Contaba con 1.5 MB de cach L1, lo que le permiti conseguir una gran
mejora en el rendimiento. Se actualiz el bus Runway con una implementacin basada
en DDR, consiguiendo 2GB/s de ancho de banda entre microprocesador y memoria. La
tabla de saltos aument el doble hasta alcanzar 2048 entradas y el buffer desde 120 a 160
entradas.
El 8600 es bsicamente igual al 8500 pero con una poltica semi-LRU para la cach.
El 8700 cuenta con una velocidad superior a la del 8600 y con una cach L1 de 2.25 MB.
Tambin se aadi capacidad de precaptacin de datos.
PA-8800, Mako, cuenta con dos microprocesadores independientes en el mismo
encapsulado (dual-core). Cada chip cuenta con SMP de 2 vas, as como 1.5 MB de cach
L1, pero HP ha decidido aadir 32 MB de cache L2 en chips separados. El bus Runway ha
sido reemplazado por el bus Itanium2, capaz de mantener tasas de 6.4 Gb/s y mantener
un expepcional ancho de banda.
Despus del PA-8900, HP esperar retirar la arquitectura PA-RISC para sustituirla con la
arquitectura Itanium. El ncleo que se introdujo con el PA-8000 no ha cambiado de forma
significativa hasta hoy; cada generacin posterior solo ha aumentado la velocidad de reloj
y la capacidad de la cach. Se ha mantenido el nmero de 2 ncleos en el mismo
encapsulado.

Joel Ramos |

Lenguajes de Programacin en Ensamblador

Lenguaje ensamblador x86


El lenguaje ensamblador x86 es la familia de los lenguajes ensambladores para los
procesadores de la familia x86, que incluye desde los procesadores Intel 8086 y 8088,
pasando por los Pentium de Intel y los Athlon de AMD y llegando hasta los ltimos
procesadores x86 de estas compaas. Como el resto de lenguajes ensambladores, usa
una serie de mnemotcnicos para representar las operaciones fundamentales que
el procesador puede realizar. Los compiladores a menudo producen cdigo ensamblador
como un paso intermedio cuando traducen un programa de alto nivel a cdigo mquina.
Considerado como un lenguaje de programacin de bajo nivel y especfico para cada
mquina. Aunque algunas veces es usado para software de aplicacin de sistemas de
ventanas, los lenguajes ensambladores son utilizados principalmente en aplicaciones
crticas como sistemas de arranque, Sistemas Operativos, ncleos y en controladoras de
dispositivos, as como en sistemas en tiempo real o pequeos sistemas embebidos.

Historia
Los procesadores Intel 8086 y 8088 fueron los primeros de 16 bits en tener un conjunto
de instrucciones conocido actualmente como x86. Fueron un paso evolutivo en
comparacin con la generacin anterior de CPUs de 8 bits, como el 8080 y heredaron
muchas caractersticas e instrucciones, las cuales fueron extendidas para trabajar con 16
bits. Ambos CPUs contenan un bus de direcciones de 20 bits y un grupo
de registros internos de 16 bits. El 8086 tena un bus de datos externo de 16 bits y el 8088
uno de 8 bits. El 8088 estaba previsto como una versin debajo coste del 8086. El lenguaje
ensamblador del x86 tambin cubre las diferentes versiones de CPU que siguieron, como
el 80188 y 80186, 80286, 80386, 80486, Pentium, etc, de Intel, tambin como los CPU
de AMD y Cyrix como los procesadores 5x86 y K6, y el NEC V20 de NEC. El trmino x86
aplica a cualquier CPU pueda correr el lenguaje ensamblador original (usualmente
tambin correr por lo menos algunas de las extensiones.
El moderno conjunto de instrucciones x86 es un superconjunto de las instrucciones del
8086 y el 8088 y una serie de extensiones a este conjunto de instrucciones que
comenzaron con el microprocesador Intel 8008.

Joel Ramos |

Lenguajes de Programacin en Ensamblador

Existe casi una completa compatibilidad binaria desde los chips Intel 8088 y 8086 con los
modernos procesadores Intel Pentium 4, Intel Core Duo, Intel Core i7, AMD Athlon
64, AMD Opteron, hasta la generacin actual de microprocesadores x86, aunque existen
algunas excepciones. Esta compatibilidad se logra gracias al uso de 2 conjuntos de
instrucciones de arquitecturas, lo cual es comnmente criticado.
La compatibilidad de los programas en lenguaje ensamblador con procesadores ms
antiguos slo es posible cuando el programa no incluye instrucciones solo disponibles en
los procesadores nuevos.
Generalmente, cada nuevo procesador de la serie tiene unas cuantas instrucciones
adicionales y ms capacidades y mejor desempeo que los anteriores. El 286 agreg unas
cuantas instrucciones. el modo protegido y capacidad multitarea, el 386 extendi la
plataforma de 16 a 32 bits, aadi algunas instrucciones e hizo al conjunto de
instrucciones ms ortogonal, hacindolo la base de los procesadores siguientes hasta que
aparecieron los de 64 bits. Con el 486 se incorpor el coprocesador numrico en el
propio chip, otros procesadores posteriores agregaron instrucciones para acelerar el
procesamiento multimedia, multithreading, 2 ms ncleos, 64 bits, etc.

Joel Ramos |

Lenguajes de Programacin en Ensamblador

10

Microsoft Macro Assembler


El Microsoft
Macro
Assembler (MASM)
es
un ensamblador para
la
familia x86 de microprocesadores. Fue producido originalmente por Microsoft para el
trabajo de desarrollo en su sistema operativo MS-DOS, y fue durante cierto tiempo el
ensamblador ms popular disponible para esesistema operativo. El MASM soport una
amplia variedad de facilidades para macros y programacin estructurada, incluyendo
construcciones de alto nivel para bucles, llamadas a procedimientos y alternacin (por lo
tanto, MASM es un ejemplo de un ensamblador de alto nivel). Versiones posteriores
agregaron la capacidad de producir programas para los sistemas operativos Windows.
MASM es una de las pocas herramientas de desarrollo de Microsoft para las cuales no
haba versiones separadas de 16 bits y 32 bits.

La competencia
A principio de los aos 1990, ensambladores alternativos comenzaron a tomar algo de la
cuota de mercado del MASM, como el TASM de Borland, el ensamblador A86,
comercializado como shareware, y hacia finales de los aos 1990, el NASM. Sin embargo,
dos acontecimientos a finales de los aos 1990 permitieron que el MASM conservara
mucha de su cuota de mercado: Primero, Microsoft dej de vender el MASM como un
producto comercial y comenz a distribuirlo gratuitamente como parte del Driver
Development Kit (DDK) (Kit de Desarrollo de Controladores). Segundo, aparecieron, el
paquete MASM32, y los tutoriales sobre Win32 de Iczelion, haciendo posible la
programacin de aplicaciones de Windows con el MASM. Combinado con la enorme base
instalada de usuarios de MASM, estos dos eventos ayudaron a prevenir la desercin del
MASM a otros ensambladores. Hoy en da, MASM sigue siendo el ensamblador nmero
uno en la plataforma Win32, a pesar de la competencia de productos nuevos tales
como NASM, FASM, GoAsm, y HLA.

Joel Ramos |

Lenguajes de Programacin en Ensamblador

11

Proyectos que soportan al MASM


Hay en curso muchos desarrollos de proyectos de software que soportan el MASM,
incluyendo IDEs (como RadASM y WinAsm
Studio), depuradores (como OllyDbg),
y desensambladores (incluyendo IDAPro, el desensamblador interactivo). El proyecto
MASM32 ha puesto juntos una muy impresionante librera de programador, un
repositorio de ejemplos de cdigo, y una extraordinaria documentacin para los usuarios
del MASM. MASM tambin es soportado por una gran cantidad de pginas web y foros de
discusin. A pesar de la edad de este producto, sigue siendo uno de los ensambladores en
existencia mejor soportados.

Joel Ramos |

Lenguajes de Programacin en Ensamblador

12

Netwide Assembler
El Netwide
Assembler o NASM,
es
un ensamblador libre para
la
plataforma Intel x86. Puede ser usado para escribir programas tanto de 16 bits como de
32 bits (IA-32). 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 tambin incluye un desensamblador, el NDISASM.

Historia
El NASM fue escrito originalmente por Simon Tatham con ayuda de Julian Hall, y
actualmente es desarrollado por un pequeo equipo en SourceForge que le hace
mantenimiento. Fue lanzado originalmente bajo su propia licencia, pero ms adelante fue
cambiada por la licencia GNU Lesser General Public License, seguido de un nmero de
problemas polticos causado por la seleccin de la licencia. La prxima versin del NASM,
la 2.00, actualmente est siendo desarrollada bajo la bifurcacin 0.99, e incluir soporte
para el x86-64 (x64/AMD64/Intel 64), junto con la respectiva salida de archivo objeto de
64 bits. Esta versin de desarrollo puede ser encontrada en el NASM git repository, y
snapshots por lasnoches en formatos de cdigo fuente y binarios estn disponibles aqu.

Caractersticas
El NASM puede generar varios formatos binarios en cualquier mquina,
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. Adems, el NASM puede crear archivos binarios planos,
usables para escribir boot loaders (cargadores de arranque), imgenes 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 mquinas.
Joel Ramos |

Lenguajes de Programacin en Ensamblador

13

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. Tambin evita caractersticas como la generacin automtica 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
localizacin de variables a los que stos se refieren.

Joel Ramos |

Lenguajes de Programacin en Ensamblador

14

Turbo Assembler

El Turbo Assembler (TASM), un paquete ensamblador principalmente destinado a la


plataforma del IBM PC y sus compatibles. Fue la oferta de Borland en el mercado de
herramientas

de

programacin

los microprocesadores x86.

Como

en lenguaje
se

ensamblador para

pudiera

esperar,

la

familia

de

bien

con

trabajaban

los compiladores de lenguaje de alto nivel de Borland para los PC, como Turbo C, Turbo
BASIC y Turbo Pascal. Junto con el resto de suite de lenguajes de programacin Turbo.
Turbo Assembler es mantenido y empaquetado por Embarcadero Delphi y C++Builderq.
El paquete Turbo Assembler vino junto con el enlazador Turbo Linker, y era
interoperable con el depurador Turbo Debugger. Para la compatibilidad con el
ensamblador Microsoft Macro Assembler (MASM) de Microsoft, TASM tambin poda
ensamblar los archivos de cdigo fuente del MASM por medio de su modo MASM. Al igual
que ste, es un ensamblador de alto nivel.
Turbo Assembler tambin se refiere a un ensamblador comn, basado en el
microprocesador 6502 para

el Commodore

64,

creado

por

la

compaa

alemana Omikron en 1985. Este producto no se relaciona con el ensamblador de Borland.

Joel Ramos |

Lenguajes de Programacin en Ensamblador

15

Flat Assembler

Flat assembler (FASM) es un ensamblador libre, multi-paso, con el estilo de la sintaxis de


Intel que soporta las arquitecturas IA-32 y x86-64.
El proyecto fue iniciado en 1999 por Tomasz Grysztar, que en aquella poca era un
estudiante no graduado de matemticas en Polonia. El FASM est escrito en lenguaje
ensamblador, viene con el cdigo fuente completo, y fue capaz de ensamblarse a s mismo
(bootstrapping) desde la versin 0.90 del 4 de mayo de 1999. El primer lanzamiento
pblico fue anunciado la 15 de marzo de 2000.
Es notable por su velocidad rpida, optimizaciones de tamao, portabilidad, poderosas
capacidades de macro, y la comunidad del foro en lnea. Sin embargo, casi no usa
opciones en la lnea de comandos. Hay disponibles archivos binarios y de cdigo
fuente para Linux, Windows (incluyendo
desarrollo), DOS, OpenBSD, MenuetOS, OctaOS,

un IDE de
y DexOS.

FASM

contiene

vnculos

(bindings) para la GUI de Windows y OpenGL.


Todas las versiones de FASM pueden generar los siguientes archivos objeto: binarios
planos (flat binary), ELF o COFF (clsico o de MS), como tambin ejecutables en
formato MZ, ELF o PE. Existe un traslado del ensamblador a la arquitectura ARM, llamado
FASMARM.
La ltima versin disponible es la 1.70.03, lanzada el 29 Junio de 2012.

Joel Ramos |

Lenguajes de Programacin en Ensamblador

16

También podría gustarte