Inicio - Software Desarrollo

Herramientas de programación
Para poder programar en ensamblador se precisa de algunas herramientas
básicas, como un editor para introducir el código, un ensamblador para traducir el
código a lenguaje de máquina y un enlazador para crear archivos binarios puros
enlazar librerías del sistema según sea necesario etc..
Aparte también se necesitan módulos con declaraciones de macros, estructuras
de datos y funciones, utilidades para generar archivos de recursos, etc. Todo ello,
lógicamente, para el sistema operativo concreto sobre el que se pretende
programar.
Editores
Editor de textos son aplicaciones que permiten introducir el código, guardarlo en
un archivo, recuperarlo y, en general, efectuar todas las tareas habituales de
edición. Se puede usar virtualmente cualquier editor de texto sin formato, desde el
EDIT de DOS, el Bloc de notas de Windows o vi de Unix hasta los editores
integrados en entornos de desarrollo como Visual Studio, Eclipse y similares.
Existen editores específicos, que se podrían denominar entornos integrados de
desarrollo o IDE, que ahorran trabajo al contar con opciones para efectuar el
ensamblado, enlace, incluso, la ejecución sin necesidad de abandonar la edición
de código.
Entre los más conocidos editores con interfaz de desarrollo tenemos:
Assembler
Editor: Editor, compilador y enlazador de programas escritos en
lenguaje ensamblador compatible con TASM, MASM. Se pude instalar en
plataformas de Microsoft.
Figura 7. Editor Assembler Editor.
Nasm-IDE: Editor, compilador y enlazador, es compatible solo con nasm y
Windows DOS.
NasmEdit: Igual que Nasm-IDE pero es compatible con cualquier plataforma que
pueda ejecutar java 2.
Figura 8. Editor Nasm-IDE.
Ensambladores
Un ensamblador es como un compilador de cualquier lenguaje, el ensamblador
toma un archivo de texto con código fuente como entrada y, en respuesta, genera
un nuevo archivo con esas mismas sentencias pero en lenguaje de un
determinado procesador.
Los más conocidos ensambladores para x86 son los siguientes:
Masm: Es el ensamblador más usado en DOS y Windows, está desarrollado por
la misma empresa que creó dichos sistemas Microsoft.
Es bastante potente y puede utilizarse para crear programas DOS y Windows, así
como
bibliotecas
y
controladores
de
dispositivos.
Como
los
demás
ensambladores, MASM se invoca desde la línea de comandos directamente o, en
caso de contar con él, desde un editor previa configuración.
Nasm: Net Wide Assembler, es un ensamblador bajo licencia BSD para
plataformas Intel x86, permite escribir programas en 16, 32, 64 bits.
Es compatible para múltiples plataformas, entre ellas DOS, Windows y Linux. Esto
conlleva una gran ventaja, ya que podemos usar exactamente la misma
herramienta en todos los sistemas, sin tener que cambiar de sintaxis, parámetros,
etc.
Nasm puede generar como salida varios formatos binarios.
Gas (GNU Assembler): Principal ensamblador en plataformas Linux, tiene
licencia de software libre, es compatible con la sintaxis de AT&T, permite generar
como salida varios formatos binarios.
Otros Ensambladores: Existen otros ensambladores como TASM (Turbo
Assembler), A86 etc.
Enlazadores
Los ensambladores son traductores que toman el código fuente y, partiendo de
cada sentencia, generan una secuencia de bytes, por regla general muy corta, que
es el código objeto. El conjunto de todas las secuencias de bytes, una por
instrucción, se almacenan en un archivo que no es directamente ejecutable. Dicho
archivo contiene una versión de nuestro programa en el lenguaje de la máquina,
pero no cuenta con la información adicional necesaria para que el sistema
operativo o el procesador sepa gestionarlo.
El enlazador es La herramienta encargada de tomar el código objeto generado por
el ensamblador, añadir los encabezados apropiados y producir un nuevo archivo
ya ejecutable esto es
el conocido como linker o enlazador. En el caso para
generar gestores de arranque el enlazador produce código puramente binario sin
bibliotecas que dependan del sistema operativo en tiempo de ejecución.
Por regla general, cada ensamblador cuenta con su propio enlazador.
Si utiliza MASM el enlazador será LINK. Para TASM el correspondiente enlazador
es TLINK. NASM no se acompaña de un enlazador propio, aunque puede
utilizarse cualquiera de distribución libre como es ALINK o bien, en el caso de
Linux, usar el propio del sistema LINK.
2.2.6.2 GCC
GNU C Compiler fue iniciado en 1984 para crear un sistema operativo basado en
software libre similar a UNIX y, así promover la libertad y la cooperación entre
usuarios de ordenadores y programadores.
GCC es un compilador rápido, muy flexible, y riguroso con el estándar de C ANSI.
Como ejemplo de sus múltiples virtudes, se tiene que gcc puede funcionar como
compilador cruzado para un gran número de arquitecturas distintas. Gcc no
proporciona un entorno IDEs, es solo una herramienta más a utilizar en el proceso.
Gcc se encarga de realizar (o encargar el trabajo a otras utilidades) el pre
procesado del código, la compilación, y el enlazado.
Dicho de otra manera, se proporciona a gcc código fuente en C, y él nos devuelve
un archivo binario compilado para nuestra arquitectura.
Gcc no genera código binario alguno, sino código ensamblado. La fase de
ensamblado a código binario la realiza el ensamblador de GNU (gas), y el
enlazado de los objetos resultantes, el enlazador de GNU (ld). Este proceso es
transparente para el usuario, ya que a no ser que se lo especifiquemos, gcc
realiza el paso desde código en C a un binario ejecutable automáticamente.
A través del tiempo GCC ha sido extendido para dar soporte a muchos lenguajes
adicionales, incluyendo Fortran, ADA, Java y Objective-C, C, C++.
A continuación se describen las etapas correspondientes al conjunto de
herramientas de compilación gcc que permite traducir programas escritos en el
lenguaje de programación C.
Figura 9. Etapas De Gcc.