Documentos de Académico
Documentos de Profesional
Documentos de Cultura
ALUMNOS:
Masihady Mendoza
Urbinson Ruiz
Robert Sevilla
Franklin Glea
Ing. En telecomunicaciones
CONCEPTO
El lenguaje ensamblador es el lenguaje de programacin utilizado para escribir programas
informticos de bajo nivel, y constituye la representacin ms directa del Cdigo mquina
especfico para cada arquitectura de computadoras legible por un programador. Aun hoy se
utiliza en la programacin de handler o manipuladores de dispositivos de hardware.
CARACTERITICAS
LENGUAJE
Un programa escrito en lenguaje ensamblador consiste en una serie de Instrucciones que
corresponden al flujo de rdenes ejecutables que pueden ser cargadas en la Memoria de un
sistema basado en Microprocesador. Por ejemplo, un Procesador x86 puede ejecutar la
siguiente instruccin Binaria como se expresa en cdigo de mquina:
mover
Llenar un registro con un valor constante (Ej.: mov al, `20`). o mover datos de una posicin
de memoria a un registro o viceversa (Ej.: mov al, [si]) o escribir y leer datos de
dispositivos (Ej.: lea dx, offset cadena)
computar
Sumar, restar, multiplicar o dividir los valores de dos registros, colocando el resultado en
uno de ellos o en otro registro (Ej.: sum, mul, div, entres otras instrucciones). o realizar
operaciones binarias, incluyendo operaciones lgicas (AND/OR/XOR/NOT) o comparar
valores entre registros (mayor, menor, igual) (Ej.: cmp)
Saltar a otra posicin en el programa y ejecutar instrucciones all (Ej.: jmp) o saltar si se
cumplen ciertas condiciones (IF) (Ej.: jnb, jnz, jb, jz, jne, je, entre otros) o saltar a otra
posicin, pero guardar el punto de salida para retornar (Ej.: CALL, llamada a subrutinas)
Algunas computadoras incluyen instrucciones complejas dentro de sus capacidades. Una
sola instruccin compleja hace lo mismo que en otras computadoras puede requerir una
larga serie de instrucciones, por ejemplo:
Flexibilidad: Es flexible porque todo lo que puede hacerse con una mquina, puede
hacerse en el lenguaje ensamblador de esta mquina; los lenguajes de alto nivel
tienen en una u otra forma limitantes para explotar al mximo los recursos de la
mquina. O sea que en lenguaje ensamblador se pueden hacer tareas especficas que
en un lenguaje de alto nivel no se pueden llevar acabo porque tienen ciertas
limitantes que no se lo permite
Desventajas
Programas fuente grandes: Por las mismas razones que aumenta el tiempo, crecen
los programas fuentes; simplemente requerimos ms instrucciones primitivas para
describir procesos equivalentes. Esto es una desventaja porque dificulta el
mantenimiento de los programas, y nuevamente reduce la productividad de los
programadores.
Peligro de afectar recursos inesperadamente: Que todo error que podamos cometer,
o todo riesgo que podamos tener, podemos afectar los recursos de la mquina,
programar en este lenguaje lo ms comn que pueda pasar es que la mquina se
bloquee o se reinicialice. Porque con este lenguaje es perfectamente posible (y
sencillo) realizar secuencias de instrucciones invlidas, que normalmente no
aparecen al usar un lenguaje de alto nivel.
Registros de Estado
Hay nueve indicadores de un bit en este registro de 16 bits. Los cuatro bits ms
significativos estn indefinidos, mientras que hay tres bits con valores determinados: los
bits 5 y 3 siempre valen cero y el bit 1 siempre vale uno.
CF (Carry Flag, bit 0): Si vale 1, indica que hubo "arrastre" (en caso de suma) o "prstamo"
(en caso de resta). Este indicador es usado por instrucciones que suman o restan nmeros
que ocupan varios bytes. Las instrucciones de rotacin pueden aislar un bit de la memoria o
de un registro ponindolo en el CF.
PF (Parity Flag, bit 2): Si vale uno, el resultado tiene paridad par, es decir, un nmero par
de bits a 1. Este indicador se puede utilizar para detectar errores en transmisiones.
AF (Auxiliary carry Flag, bit 4): Si vale 1, indica que hubo "arrastre" o "prstamo" del
nibble (cuatro bits) menos significativo al nibble ms significativo. Este indicador se usa
con las instrucciones de ajuste decimal.
ZF (Zero Flag, bit 6): Si este indicador vale 1, el resultado de la operacin es cero.
SF (Sign Flag, bit 7): Refleja el bit ms significativo del resultado. Como los nmeros
negativos se representan en la notacin de complemento a dos, este bit representa el signo:
0 si es positivo, 1 si es negativo.
TF (Trap Flag, bit 8): Si vale 1, el procesador est en modo paso a paso. En este modo, la
CPU automticamente genera una interrupcin interna despus de cada instruccin,
permitiendo inspeccionar los resultados del programa a medida que se ejecuta instruccin
por instruccin.
IF (Interrupt Flag, bit 9): Si vale 1, la CPU reconoce pedidos de interrupcin externas. Si
vale 0, no se reconocen tales interrupciones
DF (Direction Flag, bit 10): Si vale 1, las instrucciones con cadenas sufrirn "autodecremento", esto es, se procesarn las cadenas desde las direcciones ms altas de memoria
hacia las ms bajas. Si vale 0, habr "auto-incremento", lo que quiere decir que las cadenas
se procesarn de "izquierda a derecha".
OF (Overflow flag, bit 11): Si vale 1, hubo un desborde en una operacin aritmtica con
signo, esto es, un dgito significativo se perdi debido a que tamao del resultado es mayor
que el tamao del destino.
RELACION ENTRE EL CODIGO BINARIO Y EL LENGUAJE ENSAMBLADOR
En el cdigo binario se utilizan ceros y unos, mientras que el lenguaje ensamblador es una
coleccin de smbolos mnemnicos que representan: operaciones, nombres simblicos,
operadores y smbolos especiales.
La relacin entre estos dos lenguajes sera que el binario es el lenguaje que la mquina
entiende y el ensamblador se acerca ms lenguaje de esta.
Memoria de Programa
Memoria Externa de Datos
Memoria Interna de Datos
Registros de Funciones Especiales
Memoria de Bit.