Beruflich Dokumente
Kultur Dokumente
Faculta de Ingeniería
Arquitectura de Computadoras 1
Documento de Especificaciones
Assembler
200819081
12 de marzo de 2011
Introducción
El término ensamblador (del inglés assembler) se refiere a un tipo de programa informático que se
encarga de traducir un fichero fuente escrito en un lenguaje ensamblador, a un fichero objeto que
contiene código máquina, ejecutable directamente por la máquina para la que se ha generado. El
propósito para el que se crearon este tipo de aplicaciones es la de facilitar la escritura de
programas, ya que escribir directamente en código binario, que es el único código entendible por
la computadora, es en la práctica imposible. La evolución de los lenguajes de programación a
partir del lenguaje ensamblador originó también la evolución de este programa ensamblador hacia
lo que se conoce como programa compilador.
Objetivos
Introducción Página 2
Objetivos Página 3
Conclusión Página 9
Bibliografía Página 10
Marco Teórico
1. Descripción de Macros:
Las macros son instrucciones complejas, formada por otras instrucciones más sencillas. Esto permite la
automatización de tareas repetitivas. Se pueden programar macros en casi todos los lenguajes de
programación y sus utilidades son muy variadas, para el lenguaje assembler un macro se define de la
siguiente manera:
programa.EXE:
Manejo de parámetros Para hacer una macro flexible, puede definir nombres en ella como argumentos
mudos (ficticios).La definición de la macro siguiente, llamada DESPLEGAR_MSG, proporciona el uso de la
función 09H del DOS para desplegar cualquier mensaje. Cuando se usa la macroinstrucción el programador
tiene que proporcionar el nombre del mensaje, el cual hace referencia a un área de datos terminada por un
signo de dólar.
Manejo de etiquetas locales Algunas macros necesitan que se definan elementos de datos y etiquetas de
instrucciones dentro de la definición de la macro. Si utiliza la macro más de una vez en el mismo programa y
el ensamblador define los elementos de datos para cada aparición, los nombres duplicados harían que el
ensamblador genere un mensaje de error. Para asegurar que cada nombre generado es único, hay que
codificar la directiva LOCAL inmediatamente después de la instrucción MACRO. Su formato general es:
LOCAL Etiqueta1, Etiqueta2...Etiquetan.
Bibliotecas de Macros Definir una macro y usarla solo una vez en un programa no es muy productivo. El
enfoque habitual es catalogar las macros en una biblioteca en disco bajo un nombre descriptivo, como
MACRO.LIB. Usted solo tiene que reunir todas las definiciones de sus macros en un archivo y almacenar el
archivo en disco:
Macro1 MACRO
....
ENDM
Macro2 MACRO
....
ENDM
2. Descripción de Instrucciones Utilizadas:
A continuación se encuentra una tabla con las instrucciones quizá más simples, pero más utilizadas
en el lenguaje ensamblador:
TRANSFERENCIA
Nombre Comentario Operación
MOV Mover (copiar) MOV Dest,Fuente
XCHG Intercambiar XCHG Op1,Op2
PUSH Apilar en la pila PUSH Fuente
ARITMETICOS
Nombre Comentario Operación
ADD Suma ADD Dest,Fuente
SUB Resta SUB Dest,Fuente
DIV División (sin signo) DIV Op
IDIV División entera con signo IDIV Op
MUL Multiplicación (sin signo) MUL Op
IMUL Multiplicación entera con signo IMUL Op
INC Incrementar INC Op
DEC Decrementar DEC Op
CMP Comparar CMP Op1,Op2
LOGICOS
Nombre Comentario Operación
NOT Invertir cada bit NOT Op
AND 'Y' (And) lógico AND Dest,Fuente
OR 'O' (Or) lógico OR Dest,Fuente
XOR 'O' (Or) exclusivo XOR Dest,Fuente
MISCELANEOS
Nombre Comentario Operación
INT Interrupción INT Num
SALTOS (generales)
Nombre Comentario Operación
CALL Llamado a subrutina CALL Proc
JMP Saltar JMP Dest
JE Saltar si es igual JE Dest
JZ Saltar si es cero JZ Dest
RET Retorno de subrutina RET
JNE Saltar si no es igual JNE Dest
JNZ Saltar si no es cero JNZ Dest
JECXZ Saltar si ECX es cero JECXZ Dest
JNP Saltar si no hay paridad JNP Dest
JPO Saltar si hay paridad impar JPO Dest
La UCP o CPU tiene 14 registros internos, cada uno de ellos de 16 bits (una palabra). Los
bits están enumerados de derecha a izquierda, de tal modo que el bit menos significativo es
el bit 0.
Registros de datos:
Estos registros son de uso general y también pueden ser utilizados como registros de 8 bits,
para utilizarlos como tales es necesario referirse a ellos como por ejemplo: AH y AL, que
son los bytes alto (high) y bajo (low) del registro AX. Esta nomenclatura es aplicable
también a los registros BX, CX y DX.
Registros de segmentos:
Registros índices:
Puntero de instrucciones:
3. Diagramas de Flujo:
Conclusiones