Documentos de Académico
Documentos de Profesional
Documentos de Cultura
Ir a la navegaci�nIr a la b�squeda
Para otros usos de este t�rmino, v�ase Ensamblador (desambiguaci�n).
Lenguaje ensamblador
Motorola 6800 Assembly Language.png
Fue usado principalmente en los inicios del desarrollo de software, cuando a�n no
se contaba con potentes lenguajes de alto nivel y los recursos eran limitados.
Actualmente se utiliza con frecuencia en ambientes acad�micos y de investigaci�n,
especialmente cuando se requiere la manipulaci�n directa de hardware, alto
rendimiento, o un uso de recursos controlado y reducido. Tambi�n es utilizado en el
desarrollo de controladores de dispositivo (en ingl�s, device drivers) y en el
desarrollo de sistemas operativos, debido a la necesidad del acceso directo a las
instrucciones de la m�quina. Muchos dispositivos programables (como los
microcontroladores) a�n cuentan con el ensamblador como la �nica manera de ser
manipulados.
�ndice
1 Caracter�sticas
2 Programa ensamblador
2.1 Ensambladores de alto nivel
2.2 Uso del t�rmino
3 Lenguaje
3.1 Instrucciones de CPU
3.2 Ensamblado
3.3 Ejemplos
4 Dise�o del lenguaje
4.1 Elementos b�sicos
4.1.1 Mnem�nicos de opcode y mnem�nicos extendidos
4.1.2 Secciones de datos
4.1.3 Directivas del ensamblador
4.2 Macros
4.3 Soporte para programaci�n estructurada
5 Uso del lenguaje ensamblador
5.1 Perspectiva hist�rica
5.2 Uso actual
5.3 Aplicaciones t�picas
6 Detalles adicionales
7 Ejemplos de lenguaje ensamblador
7.1 Ejemplo para la arquitectura x86
7.2 Ejemplo para el computador virtual (POCA)
7.3 Ejemplo para el �C Intel 8051
7.4 Ejemplo para el Microchip PIC16F84
8 V�ase tambi�n
9 Referencias
10 Bibliograf�a
11 Enlaces externos
Caracter�sticas
El c�digo escrito en lenguaje ensamblador posee una cierta dificultad de ser
entendido ya que su estructura se acerca al lenguaje m�quina, es decir, es un
lenguaje de bajo nivel.
El lenguaje ensamblador es dif�cilmente portable, es decir, un c�digo escrito para
un microprocesador, puede necesitar ser modificado, para poder ser usado en otra
m�quina distinta. Al cambiar a una m�quina con arquitectura diferente, generalmente
es necesario reescribirlo completamente.
Los programas hechos por un programador experto en lenguaje ensamblador son
generalmente mucho m�s r�pidos y consumen menos recursos del sistema (memoria RAM y
ROM) que el programa equivalente compilado desde un lenguaje de alto nivel. Al
programar cuidadosamente en lenguaje ensamblador se pueden crear programas que se
ejecutan m�s r�pidamente y ocupan menos espacio que con lenguajes de alto nivel.
Con el lenguaje ensamblador se tiene un control muy preciso de las tareas
realizadas por un microprocesador por lo que se pueden crear segmentos de c�digo
dif�ciles y/o muy ineficientes de programar en un lenguaje de alto nivel, ya que,
entre otras cosas, en el lenguaje ensamblador se dispone de instrucciones del CPU
que generalmente no est�n disponibles en los lenguajes de alto nivel.
Tambi�n se puede controlar el tiempo en que tarda una rutina en ejecutarse, e
impedir que se interrumpa durante su ejecuci�n.
Programa ensamblador
Art�culo principal: Ensamblador
Generalmente, un programa ensamblador (assembler en ingl�s) moderno crea c�digo
objeto traduciendo instrucciones mnem�nicas de lenguaje ensamblador en opcodes, y
resolviendo los nombres simb�licos para las localizaciones de memoria y otras
entidades.1? El uso de referencias simb�licas es una caracter�stica clave del
lenguaje ensamblador, evitando tediosos c�lculos y actualizaciones manuales de las
direcciones despu�s de cada modificaci�n del programa. La mayor�a de los
ensambladores tambi�n incluyen facilidades de macros para realizar sustituci�n
textual - ej. generar cortas secuencias de instrucciones como expansi�n en l�nea en
vez de llamar a subrutinas.
Los ensambladores son generalmente m�s simples de escribir que los compiladores
para los lenguajes de alto nivel, y han estado disponibles desde los a�os 1950. Los
ensambladores modernos, especialmente para las arquitecturas basadas en RISC, tales
como MIPS, Sun SPARC, y HP PA-RISC, as� como tambi�n para el x86 (-64), optimizan
la planificaci�n de instrucciones para explotar la segmentaci�n del CPU
eficientemente.
En los compiladores para lenguajes de alto nivel, son el �ltimo paso antes de
generar el c�digo ejecutable.
N�mero de paso Hay dos tipos de ensambladores basados en cu�ntos pasos a trav�s de
la fuente son necesarios para producir el programa ejecutable.
Los ensambladores de un solo paso pasan a trav�s del c�digo fuente una vez y asumen
que todos los s�mbolos ser�n definidos antes de cualquier instrucci�n que los
refiera.
Los ensambladores de dos pasos crean una tabla con todos los s�mbolos y sus valores
en el primer paso, despu�s usan la tabla en un segundo paso para generar c�digo. El
ensamblador debe por lo menos poder determinar la longitud de cada instrucci�n en
el primer paso para que puedan ser calculadas las direcciones de los s�mbolos.
La ventaja de un ensamblador de un solo paso es la velocidad, que no es tan
importante como lo fue en un momento dados los avances en velocidad y capacidades
del computador. La ventaja del ensamblador de dos pasos es que los s�mbolos pueden
ser definidos dondequiera en el c�digo fuente del programa. Esto permite a los
programas ser definidos de maneras m�s l�gicas y m�s significativas, haciendo los
programas de ensamblador de dos pasos m�s f�ciles de leer y mantener.2?
Lenguaje
El lenguaje ensamblador refleja directamente la arquitectura y las instrucciones en
lenguaje de m�quina de la CPU, y pueden ser muy diferentes de una arquitectura de
CPU a otra.
Instrucciones de CPU
La mayor�a de las CPU tienen m�s o menos los mismos grupos de instrucciones, aunque
no necesariamente tienen todas las instrucciones de cada grupo. Las operaciones que
se pueden realizar var�an de una CPU a otra. Una CPU particular puede tener
instrucciones que no tenga otro y viceversa.