Вы находитесь на странице: 1из 3

El lenguaje ensamblador es un tipo de lenguaje de bajo nivel utilizado para escribir programas

informticos, y constituye la representacin ms directa del cdigo mquina especfico para


cada arquitectura de computadoras legible por un programador.
Fue usado ampliamente en el pasado para el desarrollo de software, pero actualmente slo se
utiliza en contadas ocasiones, especialmente cuando se requiere la manipulacin directa del
hardware o se pretenden rendimientos inusuales de los equipos.
Un programa utilitario llamado ensamblador es usado para traducir sentencias del lenguaje
ensamblador al cdigo de mquina del computador objetivo. El ensamblador realiza una
traduccin ms o menos isomorfa (un mapeo de uno a uno) desde las sentencias mnemnicas a
las instrucciones y datos de mquina. Esto est en contraste con los lenguajes de alto nivel, en
los cuales una sola declaracin generalmente da lugar a muchas instrucciones de mquina.
Muchos sofisticados ensambladores ofrecen mecanismos adicionales para facilitar el desarrollo
del programa, controlar el proceso de ensamblaje, y la ayuda de depuracin. Particularmente, la
mayora de los ensambladores modernos incluyen una facilidad de macro (descrita ms abajo),
y se llaman macro ensambladores.
Fue usado principalmente en los inicios del desarrollo de software, cuando an no se contaba
con potentes lenguajes de alto nivel y los recursos eran limitados. Actualmente se utiliza con
frecuencia en ambientes acadmicos y de investigacin, especialmente cuando se requiere la
manipulacin directa de hardware, alto rendimiento, o un uso de recursos controlado y
reducido. Tambin es utilizado en el desarrollo de controladores de dispositivo (en
ingls, device drivers) y en el desarrollo de sistemas operativos, debido a la necesidad del
acceso directo a las instrucciones de la mquina. Muchos dispositivos programables (como los
microcontroladores) an cuentan con el ensamblador como la nica manera de ser manipulados.
Caractersticas
1. Programar en lenguaje ensamblador es difcil de aprender, entender, leer, escribir, depurar
y mantener, por eso surgi la necesidad de los lenguajes compilados.
2. A pesar de perder rendimiento en un proceso de compilacin, en la actualidad la mayora
de las computadoras son suficientemente rpidas.
3. El lenguaje ensamblador no es portable.
4. Programar en lenguaje ensamblador lleva mucho tiempo.
5. Los programas hechos en lenguaje ensamblador son generalmente ms rpidos. Al
programar cuidadosamente en lenguaje ensamblador se pueden crear programas de 5 a 100
veces ms rpidos que con lenguajes de alto nivel.
6. Los programas hechos en lenguaje ensamblador generalmente ocupan menos espacio. Un
buen programa en lenguaje ensamblador puede ocupar casi la mitad de espacio que su
contrapartida en lenguaje de alto nivel.
7. Con el lenguaje ensamblador se pueden crear segmentos de cdigo imposibles de formar
en un lenguaje de alto nivel.
La mayora de las CPU tienen ms o menos los mismos grupos de instrucciones, aunque no
necesariamente tienen todas las instrucciones de cada grupo. Las operaciones que se pueden
realizar varan de una CPU a otra. Una CPU particular puede tener instrucciones que no tenga
otro y viceversa. Los primeros microprocesadores de 8 bits no tenan operaciones para
multiplicar o dividir nmeros, por ejemplo, y haba que hacer subrutinas para realizar esas
operaciones. Otras CPU puede que no tengan operaciones de punto flotante y habra que hacer
o conseguir bibliotecas que realicen esas operaciones.
Las instrucciones de la CPU pueden agruparse, de acuerdo a su funcionalidad, en:
Operaciones con enteros: (de 8, 16, 32 y 64 bits dependiendo de la arquitectura de la CPU, en
los sistemas muy viejos tambin de 12, 18, 24, 36 y 48 bits)
Estas son operaciones realizadas por la Unidad aritmtico lgica de la CPU

Operaciones aritmticas. Como suma, resta, multiplicacin, divisin, mdulo, cambio de


signo
Operaciones booleanas. Operaciones lgicas bit a bit como AND, OR, XOR, NOT
Operaciones de bits. Como desplazamiento o shift lgico y rotaciones u Operadores a nivel
de bits (hacia la derecha o hacia la izquierda, a travs del bit del acarreo o sin l)
Comparaciones
Operaciones de mover datos:
Entre los registros y la memoria:
Aunque la instruccin se llama "mover", en la CPU, "mover datos" significa en realidad
copiar datos, desde un origen a un destino, sin que el dato desaparezca del origen.
Se pueden mover valores:

Desde un registro a otro


Desde un registro a un lugar de la memoria
Desde un lugar de la memoria a un registro
Desde un lugar a otro de la memoria
Un valor inmediato a un registro
Un valor inmediato a un lugar de memoria
Operaciones de pila (stack, en ingls):

PUSH (escribe datos hacia el tope de la pila)


POP (lee datos desde el tope de la pila)
Operaciones de entrada/salida:
Son operaciones que mueven datos de un registro, desde y hacia un puerto; o de la
memoria, desde y hacia un puerto

INPUT Lectura desde un puerto de entrada


OUTPUT Escritura hacia un puerto de salida
Operaciones para el control del flujo del programa:

Llamadas y retornos de subrutinas


Llamadas y retornos de interrupciones
Saltos condicionales de acuerdo al resultado de la
comparaciones
Saltos incondicionales
Operaciones con nmeros reales:
El estndar para las operaciones con nmeros reales en las CPU
est definido por el IEEE 754.
Una CPU puede tener operaciones de punto flotante con
nmeros reales mediante el coprocesador numrico (si lo hay),
como las siguientes:
Operaciones aritmticas. Suma, resta, multiplicacin,
divisin, cambio de signo, valor absoluto, parte entera
Operaciones trascendentales
Operaciones
trigonomtricas. Seno, coseno, tangente, arcotangente
Operaciones con logaritmos, potencias y races
Otras
El lenguaje ensamblador tiene mnemnicos para cada una de
las instrucciones de la CPU en adicin a otros mnemnicos a
ser procesados por el programa ensamblador (como por
ejemplo macros y otras sentencias en tiempo de ensamblado).

Вам также может понравиться