Documentos de Académico
Documentos de Profesional
Documentos de Cultura
Ensamblador
Ensamblador
TEMA: ENSAMBLADOR
INTEGRANTES: JENNIFER PREZ MERCEDES ENRQUEZ NIVEL: FECHA: LIC: 3 SISTEMAS DIURNO 14/03/2011 JORGE VIVERO
Pgina 1
INTRODUCCIN AL ENSAMBLADOR: El lenguaje ensamblador es el sistema alfanumrico para escribir cdigo mquina mediante expresiones abreviadas (mnemotcnicos). La compilacin es ms complicada porque incluye la conversin de operaciones matemticas complejas, comandos de lenguaje natural o tipos de comandos complejos. Cada ordenador tiene su propio lenguaje ensamblador, exclusivo de su CPU; un lenguaje de alto nivel (LAN) puede ser compilado en distintas mquinas. Es usado principalmente porque hay aplicaciones o programas que deben tratar directamente con los registros de la mquina, la memoria, dispositivos de E/S, etc. PROCESOS PARA LA CREACIN DE UN PROGRAMA: Para la creacin de un programa es necesario seguir cinco pasos: Diseo del algoritmo, codificacin del mismo, su traduccin a lenguaje mquina, la prueba del programa y la depuracin. En la etapa de diseo se plantea el problema a resolver y se propone la mejor solucin, creando diagramas esquemticos utilizados para el mejor planteamiento de la solucin. La codificacin del programa consiste en escribir el programa en algn lenguaje de programacin (en este caso en ensamblador 8086), tomando como base la solucin propuesta en el paso anterior. La traduccin al lenguaje mquina es la creacin del programa objeto, esto es, el programa escrito como una secuencia de ceros y unos que pueda ser interpretado por el procesador. La prueba del programa consiste en verificar que el programa funcione sin errores, o sea, que haga lo que
Realizado por: JENNIFER PREZ Y MERCEDES ENRQUEZ Pgina 2
Pgina 3
Ensambladores bsicos. Son de muy bajo nivel, y su tarea consiste bsicamente en ofrecer nombres simblicos a las distintas instrucciones, parmetros y cosas tales como los modos de direccionamiento. Adems, reconoce una serie de directivas (o meta instrucciones) que indican ciertos parmetros de funcionamiento del ensamblador. Ensambladores modulares, o macro ensambladores. Descendientes de los ensambladores bsicos, fueron muy populares en las dcadas de los 50 y los 60, antes de la generalizacin de los lenguajes de alto nivel. Hacen todo lo que puede hacer un ensamblador, y adems proporcionan una serie de directivas para definir e invocar macroinstrucciones (o simplemente, macros). Vase X86. Ensambladores modulares 32-bits o de alto nivel. Son ensambladores que aparecieron como respuesta a una nueva arquitectura de procesadores de 32 bits, muchos de ellos teniendo compatibilidad hacia atrs pudiendo trabajar con programas con estructuras de 16 bits. Adems de realizar la misma tarea que los anteriores, permitiendo tambin el uso de macros, permiten utilizar estructuras de programacin ms complejas propias de los lenguajes de alto nivel.
CARACTERSTICAS
El cdigo escrito en lenguaje ensamblador posee una cierta dificultad de ser entendido ya que su estructura se acerca al lenguaje mquina, es decir, es un lenguaje de bajo nivel. El lenguaje ensamblador es difcilmente portable, es decir, un cdigo escrito para un microprocesador, puede necesitar ser modificado, para poder ser usado en otra mquina distinta. Al
Pgina 4
Tpicamente, un programa ensamblador (assembler en ingls) moderno crea cdigo objeto traduciendo instrucciones mnemnicas de lenguaje ensamblador en opcodes, y resolviendo los nombres simblicos para las localizaciones de memoria y otras entidades.1 El uso de referencias simblicas es una caracterstica clave del lenguaje ensamblador, evitando tediosos clculos y actualizaciones manuales de las direcciones despus de cada modificacin del programa. La mayora de los ensambladores tambin incluyen facilidades de macros para realizar sustitucin textual ej. Generar cortas secuencias de instrucciones como expansin en lnea en vez de llamar a subrutinas. Los ensambladores son generalmente ms simples de escribir que los compiladores para los lenguajes de alto nivel, y han estado disponibles desde los aos 1950. Los ensambladores modernos, especialmente para las arquitecturas basadas en RISC, tales como MIPS, Sun SPARC, y HP PA-RISC, as como tambin para el x86 (-64), optimizan la planificacin de instrucciones para explotar la segmentacin del CPU eficientemente.
Pgina 5
PROCESAMIENTO DE ENSAMBLADO Este ensamblador es de dos pasadas. Durante la primera pasada, el programa origen se lee para desarrollar la tabla de smbolos. Durante la segunda pasada el archivo objeto se crea (ensamblado) con referencia a la tabla desarrollada en la primera pasada. Durante la segunda pasada se crea el listado del programa origen. Cada enunciado origen se procesa completamente antes de que el enunciado siguiente se lea. A medida que el enunciado se procesa el ensamblador examina los campos de etiqueta, de cdigo de operacin y de operando. La tabla de cdigos de operacin se revisa para encontrar un cdigo operacional similar.
Pgina 7
Pgina 8
Registros de segmentos: CS: Registro de segmento de cdigo. Contiene la direccin de las instrucciones del programa. DS: Registro segmento de datos. Contiene la direccin del rea de memoria donde se encuentran los datos del programa. SS: Registro segmento de pila. Contiene la direccin del segmento de pila. La pila es un espacio de memoria temporal que se usa para almacenar valores de 16 bits (palabras). ES: Registro segmento extra. Contiene la direccin del segmento extra. Se trata de un segmento de datos adicional que se utiliza para superar la limitacin de los 64Kb del segmento de datos y para hacer transferencias de datos entre segmentos.
Registros punteros de pila: SP: Puntero de la pila. Contiene la direccin relativa al segmento de la pila. BP: Puntero base. Se utiliza para fijar el puntero de pila y as poder acceder a los elementos de la pila.
Realizado por: JENNIFER PREZ Y MERCEDES ENRQUEZ Pgina 10
Pgina 11
Pgina 13
LA ESTRUCTURA DEL ENSAMBLADOR: En el lenguaje ensamblador las lneas de cdigo constan de dos partes, la primera es el nombre de la instruccin que se va a ejecutar y la segunda son los parmetros del comando u operando. Por ejemplo: ADD ah bh Aqu "ADD" es el comando a ejecutar (en este caso una adicin o suma) y tanto "ah" como "bh" son los parmetros. El nombre de las instrucciones en este lenguaje puede estar formado de 2 a 6 letras, a estas instrucciones tambin se les llama nombres
Realizado por: JENNIFER PREZ Y MERCEDES ENRQUEZ Pgina 14
TITLE p04asm1 (EXE) operaciones de mover y sumar ;----------------------------------------------------STACKSG SEGMENT PARA STACK Stack DW 32 DUP(0) STACKSG ENDS ;----------------------------------------------------DATASG SEGMENT PARA Data FLDA DW 250 FLDB DW 125 FLDC DW ? DATASG ENDS
Realizado por: JENNIFER PREZ Y MERCEDES ENRQUEZ Pgina 16
TCNICAS DE CODIFICACIN EN ENSAMBLADOR: En ensamblador los bucle, condicionales, subrutinas y dems elementos se codifica de forma distinta de cmo se hace en otros lenguajes de alto nivel. A continuacin describiremos algunas tcnicas tiles para codificar las estructuras ms usuales.
Pgina 17
Pgina 18
Pgina 19
Pgina 20
Pgina 21
Pgina 22
OPERACIONES LGICAS: Se usan para realizar operaciones a nivel de bits. NOT operando: cambia los bits 1 por 0 y viceversa y de vuelve el resultado en el mismo operando. AL = F2h AL 1111 0010
Realizado por: JENNIFER PREZ Y MERCEDES ENRQUEZ Pgina 27
Pgina 28
Pgina 29
Pgina 30
Pgina 32
Pgina 33
Pgina 35
Pgina 36
Pgina 37
Pgina 38
FUENTES DE CONSULTA
http://www.ganimides.ucm.cl/rcofre/manual2-8086.pdf http://www.google.com/ http://es.wikipedia.org/wiki/Ensamblador http://proton.ucting.udg.mx/dpto/maestros/mateos/novedades/ensamblador/68HC11.html http://www.monografias.com/trabajos/ensamblador/ensamblador.shtml http://usuarios.multimania.es/patricio/ensam/ensam1.htm http://foro.elhacker.net/asm/tutorial_asm_basico_ejemplos-t102701.0.html#ixzz1GbtWqKBS
Pgina 39
Pgina 40
Pgina 41
Pgina 42
Pgina 43
Pgina 44