Escolar Documentos
Profissional Documentos
Cultura Documentos
Un Editor
Un Ensamblador
Un Enlazador
Un Depurador
8.2.1. EDITORES
Aunque en primera instancia se puede hablar del editor vi, para poder elaborar, editar programas
sencillos en ensamblador, este no es viable para programas grandes, pues el uso de este editor no es
tan sencillo, tampoco tan interactivo como ya los programadores estn acostumbrados.
Por otro lado, existen muchos herramientas de desarrollo, lgicamente editor integrado, que estn
disponibles, (comerciales o libres), al final es el programador que decide que herramienta utilizar al
respecto.
10
69
Una herramienta (mas que herramienta es una Distribucin GNU/Linux), bajo licencia GNU, es el
denominado MEPIS2, que es un Completo Entorno de Desarrollo y el cual incluye desde un editor,
ensamblador y enlazador.
8.2.2. ENSAMBLADORES
NASM: Netwide Assembler (NASM3), fue originalmente desarrollado como un paquete comercial
para entornos UNIX, pero recientemente los desarrolladores han liberado este producto como un
software Open-Source, para ambos entornos: UNIX y Windows.
Este ensamblador es completamente compatible con el conjunto de instrucciones Intel y pueden
producir ejecutables en UNIX, 16-bit MSDOS y 32-bit Windows
HLA: High Level Assembler (HLA4), es la creacin del Profesor Randall Hyde. Este ensamblador
crea aplicaciones DOS, Windows y Linux para el conjunto de instrucciones Intel.
El propsito primario con el que se creo HLA era el de enseanza a los programadores principiantes.
Este producto incorpora muchas directivas para ayudar a los programadores en la transicin o cambio
de lenguajes de alto nivel a el lenguaje assembler.
GAS: El proyecto GNU de la Free Software Foundations ha desarrollado este producto con muchos
paquetes de software libres, puede ejecutarse en entornos UNIX.
GNU Assembler, denominado GAS5, es el mas popular ensamblador para UNIX, este producto es
multiplataforma, pues este ensamblador es la excepcin a la norma de que los ensambladores estan
muy unidos en cuanto a la arquitectura del ordenador y puede ser operador en muchos diferentes
procesadores.
Obviamente el producto debe conocer la plataforma utilizada y crea el cdigo de instrucciones para esa
plataforma. Usualmente GAS, es capaz de detectar automticamente la plataforma subyacente y crear
las instrucciones adecuadas a esta plataforma sin intervencin de un operador.
Plataformas de Hardware soportadas:
VAX
AMD 29K
Hitachi H8/300
Intel 80960
M680x0
SPARC
Intel 80x86
Z8000
MIPS
http://www.mepis.org
http://nasm.sourceforge.net
4 http://webster.cs.ucr.edu
5 Esta incluido en muchas distribuciones Linux, en el paquete binutils
SIS-330 :: Programacin en Assembler
3
70
Muchas sistemas tipo *NIX, incluyen este ensamblador instalado como programa en el Sistema
Operativo.
Este producto no esta incluido como productos separado, sino mas bien dentro de una seria de
herramientas de desarrollo, en este caso en el paquete binutils.
En caso de que su distribucin LINUX, no incluya el paquete, se puede bajar el mismo desde
http://sources.redhat.com/binutils o ftp://ftp.gnu.org/gnu/binutils/.
La utilizacin de este programa, es mediante la lnea de comandos del terminal en cualquier
distribucin *NIX.
$
Ejemplo:
$ as -o prueba.o prueba.s
8.2.3. ENLAZADORES
El enlazador es utilizado para enlazar el cdigo objeto a un programa ejecutable, o librera.
Un enlazador que se puede utilizar es el enlazador que viene con GAS. El enlazador se denomina ld,
y viene tambin con el paquete binutils.
Se usa en la lnea de comandos del terminal.
ld [-o output] objfile...
[-Aarchitecture] [-b input-format] [-Bstatic]
[-Bdynamic] [-Bsymbolic] [-c commandfile] [--cref]
[-d|-dc|-dp]
[-defsym symbol=expression] [--demangle]
[--no-demangle] [-e entry] [-embedded-relocs] [-E]
[-export-dynamic] [-f name] [--auxiliary name]
[-F name] [--filter name] [-format input-format]
[-g] [-G size] [-h name] [-soname name] [--help]
[-i] [-lar] [-Lsearchdir] [-M] [-Map mapfile]
[-m emulation] [-n|-N] [-noinhibit-exec]
[-no-keep-memory] [-no-warn-mismatch] [-Olevel]
SIS-330 :: Programacin en Assembler
71
La Seccin data
La Seccin bss
La Seccin text
# seccion data
# seccion bss
# seccion text
La declaracin de la seccin bss, debera estar siempre antes de la seccin text, pero la seccin data puede
ser movido luego de la seccin text.
SIS-330 :: Programacin en Assembler
72
Salida de CPUID
Cadena del Proveedor y la mxima opcin CPUID soportada
Tipo de Procesador, familia, modelo
Configuracin del cache del procesador
Nmero Serial del Procesador
Configuracin de cache (numero de hilos, ncleos y propiedades
fsicas)
Informacin de monitoreo
Cadena extendida del proveedor
Tipo de Procesador extendido, familia, modelo
Nombre extendido del procesador.
La instruccin CPUID, retorna el valor de la cadena del Vendedor en los registros EBX, EDX y ECX de
la siguiente forma:
73
74