Unidad 4_ El Lenguaje Ensamblador

Embed Size (px)

DESCRIPTION

lenguaje ensamblador

Citation preview

LENGUAJE ENSAMBLADOREs el primer nivel creado para el programador. Se reemplazan cadenas de 0s y 1s por nombres mnemonicos claramente ms adecuados para el programador. Es implementado por traduccin en vez de interpretacin. Se sigue trabajando al nivel que la mquina ofrece. Un lenguaje de ensamblado puro es un lenguaje en que cada sentencia corresponde a una instruccin mquina. Si un programa ensamblador tiene n sentencias, entonces se traducirn a exactamente n instrucciones mquina.Otra caracterstica til, es que tiene acceso a todas las caractersticas de la mquina, cosa que los lenguajes de alto nivel no tienen. Es decir, todo lo que puede hacer el lenguaje mquina lo pdr hacer el lenguaje ensamblador.Resulta mucho ms sencillo utilizar el lenguaje ensamblador que el lenguaje mquina, el uso de nombres y direcciones simblicos hace una gran diferencia. Las dos ventajas principales son: performance y acceso a la mquina. Como el lenguaje ensamblador se entiende con los recursos de la mquina (registros, modos de direccionado, instrucciones) directamente un buen programador con conocimientos del problema y control directo de la mquina podr, no sin esfuerzo, realizar una codificacin muy ajustada en tamao y velocidad de ejecucin.Las desventajas son claras, el lenguaje ensamblador resula poco productivo, es difcil de programar en l, comparado con los lenguajes de alto nivel, y tanto el debugging como el mantenimiento es difcil. Adems, un programa en lenguaje ensambaldor no es portable, slo funcionar en una familia de mquinas.La estructura de una sentencia en lenguaje ensamblador es muy similar a la estructura de la instruccin mquina que representa. As, lenguajes ensambladores en diferentes mquinas tendrn suficiente parecido para que podamos hablar de un lenguaje ensamblador genrico.Una sentencia en lenguaje ensamblador tendr cuatro partes:Label: son referencias simblicas a una direccin bien sea de instruccin o de un dato.

Mnemonic/Pseudointruccin: contendr una representacin simblica del opcode, si la sentencia es una representacin simblica de una instruccin mquina, o un comando para el ensamblador mismo. El ensamblador tendr una tabla para convertir cada mnemnico en su equivalente numrico. El mnemnico, a su vez, le dice al ensamblador cuantos operandos, y de qu tipos pueden ser obtenidos (sern) del campo de argumentos.

Campo de operandos: Indica dnde encontrar sus operandos. Esto es mandatorio con algunas instrucciones y prohibido en otras. En general se permiten operandos de tamaos byte, word y long. Para averiguar la longitud de los operandos, hay varias soluciones: una es darle a los operandos de diferente tamao nombres diferentes (AL/AH=byte, AX=word, EAX=long); otra es agregar un sufijo al opcode o directamente crear instrucciones diferentes para trabajar con operandos de diferentes longitudes.

Comentarios: es un lugar para que los programadores pongan explicaciones tiles que expliquen cmo funciona. El campo de comentarios est ahi slo para el uso humano, no tiene efecto alguno en el proceso de ensamblado.

PseudoinstruccionesUn programa de ensamblado puede contener instrucciones para el ensalmblador mismo, stas son llamadas pseudoinstrucciones. Dan al ensamblador informacin de cmo ensamblar el programa y puede o no motivar a que se genere instrucciones o datos. El ensamblador produce un listado, a partir del texto del archivo fuente, el cual numera automticamente las lneas de texto para facilitar referencias y correcciones a l.Para seguir dnde las instrucciones y datos se cargarn en memoria, el ensamblador usa una variable interna llamada PLC. La segunda columna del listado incluira a esta variable. Una vez que el PLC es inicializado, se actualizar luego que cada lnea de cdigo es procesada, normalmente sumndole la longitud de la instruccin o el dato recin ensamblado. Este valor PLC es necesario para la tarea de construir la tabla de smbolos. Macro Assembler provee un total de 59 diferentes pseudo operaciones. Las podemos dividir en 3 grupos: Data, Macro, Listing:Las Data pseudo operaciones pueden a su vez dividirse en 5 subgrupos funcionales: Symbol Definition: como por ejemplo {Name} EQU {Expression}

Data Definition: Define una variable o inicializa memoria. Aloca 1 o ms bytes.

External Reference: ejemplos de esto seran public y extrn, el primero hace los smbolos disponibles para usar por otros mdulos que pueden vincularse a este modulo, el segundo especifica smbolos definidos en otros mdulos.

Segment/Procedure Specification: estos seran segment, proc.

Assembly Control.