Lenguaje ensamblador

Solo disponible en BuenasTareas
  • Páginas : 16 (3789 palabras )
  • Descarga(s) : 0
  • Publicado : 28 de diciembre de 2009
Leer documento completo
Vista previa del texto
Apunte para el Taller de Ensamblador | Arq. del Computador

1

APÉNDICE: APUNTES COMPLEMENTARIOS PARA EL TALLER DE ENSAMBLADOR
ENSAMBLADOR (ASSEMBLER) ¿Cuál es la diferencia entre un compilador y un ensamblador?

Un compilador es un programa que toma un código fuente (C, Pascal, etc.) y lo transforma en instrucciones de lenguaje de máquina, esto es, números binarios que le indican a lacomputadora que realice una tarea específica, p.ej., incrementar una posición de memoria, apilar un registro, llamar a una subrutina, etc. Esto se realiza en dos pasosa el compilador toma cada línea del código fuente y la transforma en varias tareas elementales, generando instrucciones de lenguaje ensamblador (texto) y definiciones de datos. Luego, el compilador toma estas instrucciones y lasensambla formando un módulo objeto. El módulo objeto es un archivo que puede ser enlazado (linkeado) con otros archivos para formar programas ejecutables.

Un ensamblador es un programa que toma un archivo de texto, en donde cada línea corresponde a una específica instrucción de máquina o una definición de datos, calcula las direcciones de memoria en donde residirán las instrucciones y los datos,traduce estos últimos de tal forma que la máquina pueda entenderlos (unos y ceros), e inserta las direcciones de los datos y las etiquetas en donde sea necesario.

El nombre de una instrucción de máquina (MOV, ADD, PUSH, CALL, ...) se denomina mnemónico. Para cada uno de ellos existe una instrucción de máquina que realiza la operación. Esto significa que la tarea del ensamblador es relativamentesimple: solamente debe reservar espacio para las instrucciones y las variables y traducir cada mnemónico en su correspondiente, código da máquina, y finalmente generar un archivo utilizable por la máquina.

Tipos de archivos 1) Archivos ejecutables (.EXE) los cuales contienen cierta información necesaria para el sistema operativo a la hora de ejecutar el programa. 2) Los archivos .COM también sonejecutables, pero no poseen información para el sistema operativo, y por lo tanto éste (el s.o.) se limita a copiarlo en memoria y entregar el control a su primera instrucción. Este tipo de programa puede tener un máximo de 64k bytes. 3) Un archivo objeto (.OBJ) es una sección de un programa. Contiene código y variables pero también contiene información que puede ser usada para combinarlo con ot.-osarchivos objeto y generar un archivo ejecutable. Un programa linkeador (linker) puede convertir uno o más archivos .OBJ en un archivo ejecutable (.EXE o .COM). 4) El programa que genera el programador se encuentra en el archivo fuente. En nuestro caso, este archivo tendrá la extensión .ASM y será creado por un editor de textos ASCII.

Apunte para el Taller de Ensamblador | Arq. del Computador2

Comencemos a analizar la estructura que tendrán los archivos fuente de los programas en ensamblador. Veamos el siguiente archivo, llamado TEMPL.ASM:
; ; .Model Small .STACK ; .DATA ; ;Zona de definición de datos (segment de datos) ; .CODE main PROC mov mov ; ; Zona de Código, rutina principal (segmento de código) ; mov int main ; proc1 ; ; Zona de Código, rutina proc1 (segmento de código); ret proc1 ; proc2 ; ; Zona de Código, rutina proc2 (segmento de código) ; ret proc2 ; END main ; Indica el final del programa fuente y el nombre ; de la rutina (o etiqueta) que toma el control ; al principio de la ejecución. ENDP PROC ENDP PROC ENDP ah,4Ch 21h ; Para devolver el control ; al sistema operativo DOS. ax,DGROUP ds,ax ; ; Inicialización del segmento de datos ;(segmento de stack)TEMPL.ASM

1

2

3

4

Este archivo obedece a una estructura simplificada de segmentación, y la tomaremos como base para nuestros trabajos. Si analizamos este programa podremos identificar cuatro columnas: 1a. columna: zona de etiquetas (main, prod, etc.) 2a. columna: zona de códigos de operación (mov, int, etc.) 3a. columna: zona de operandos (ds,ax; ah,4Ch; etc.) 4a. columna: zona de...
tracking img