2. Lenguaje Ensamblador
• Derivado del lenguaje
maquina , formado por
abreviaturas de letras y
números llamadas
mnemotécnicos .
2
3. •Es un lenguaje en el que cada enunciado produce
exactamente una instrucción maquina.
•Los lenguajes ensambladores tienen acceso a
todas las características e instrucciones
disponibles en la maquina.
•En resumen todo lo que puede hacerse en
lenguaje maquina puede hacerse en lenguaje
ensamblador.
3
5. •Ensamblador es directamente traducible al Lenguaje
de Máquina, y viceversa.
•La computadora no entiende directamente al Lenguaje
Ensamblador; es necesario traducirle a Lenguaje de
Máquina.
• Se utilizan traductores que convierten el código fuente
(en Lenguaje Ensamblador) a código objeto.
•El usar los traductores de codigo son con el fin de
facilitar la programacion y tener el control del harware.
5
7. Velocidad
•Implica un proceso de cómputo
adicional al que el programador quiere
realizar.
•Un intérprete es siempre más lento
que realizar la misma acción en
Lenguaje Ensamblador.
•Mayor parte de las veces, el código
generado por un compilador es menos
eficiente que el código equivalente
que un programador escribiría.
7
8. Tamaño
• Existen programas donde
el uso de las memoria es
critico para esos casos es
eficiente el lenguaje
ensamblador por la
mínima cantidad de
recursos de los que
dispone
8
9. Flexibilidad
Las razones anteriores son cuestión de
grado:
•Los lenguajes de alto nivel tienen
limitantes en el control; al hacer
abstracciones, limitan su propia
capacidad.
•En cambio, en ensamblador es
sumamente sencillo, pues tenemos el
acceso directo al hardware del
monitor.
9
11. Tiempo de programación
Requiere más instrucciones para
realizar el mismo proceso.
Por otro lado, requiere de más
cuidado por parte del
programador.
Es propenso a que los errores
de lógica se reflejen más
fuertemente en la ejecución.
11
12. Programa fuentes grandes
Crecen los programas fuentes;
simplemente, requerimos más
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.
12
13. Peligro de afectar recursos
• El problema es que todo
error que podamos
cometer, o todo riesgo que
podamos tener, podemos
tenerlo también en este
Lenguaje. Dicho de otra
forma, tener mucho poder
es útil pero también es
peligroso.
13
14. Falta de portabilidad
• Como ya se mencionó, existe
un lenguaje ensamblador
para cada máquina; por ello,
evidentemente no es una
selección apropiada de
lenguaje cuando deseamos
codificar en una máquina y
luego llevar los programas a
otros SO.
14
18. Registros de segmento
• Codifica la dirección de
inicio de cada segmento
y su dirección en un
registro de segmento
supone cuatro bits 0 a
su derecha.
• Registro CS
• Registro DS
• Registro SS
• Registro ES
• Registro FS y GS
18
19. Registro Apuntador
• Los registros apuntadores
están asociados con el
registro SS y permiten al
procesador accesar datos
en el segmento de pila los
registros apuntadores son
dos.
• El registro SP
• El registro BP
19
20. Registros de propósitos generales
• son los caballos de batalla
o las herramientas del
sistema. Son los únicos en
el sentido de que se puede
direccionarlos como una
palabra o como una parte
de un byte.
• AX
• BX
• CX
• DX
20
21. Registro índice.
• Los registros SI y DI están
disponibles para
direccionamientos
indexados y para sumas
y restas. Que son la
operaciones de punta.
• SI
• DI
21
22. Ejemplo#1
Un programa que teniendo
pendiente 3 valores nos diga cual
es el mayor de ellos, el mayor que
lo ponga en Dx
22
23. Ejemplo#1
23
.model small
.stack 100h
.data
.code
Mov AX
Mov BX
Mov BX
Cmp AX,BX
JG compA
Cmp BX,CX
Jmp Mover B
X:mov DX,CX
Jmp Fin
fin :end.
Compa:cmo AC,CX
JG Mover A
Jmp x
MoverB:mov DX,BX
Jmp fin
Mover A: mov DX,AX
Jmp fin
24. Conclusiones
• El lenguaje ensamblador a pesar de ser mas rápido
de cualquier otro lenguaje es también el mas
complejo por eso es utilizado para complementar
los limitantes de los lenguajes de programación de
alto nivel.
• Pero existen ramas donde es imprescindible el uso
de lenguaje ensamblador como lo es la electrónica
donde los recursos de los aparatos son limitados y
es necesario utilizar lenguaje ensamblador
24