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.
© Copyright 2024