Este documento proporciona información sobre el lenguaje ensamblador. Define el lenguaje ensamblador como un lenguaje de programación de bajo nivel que implementa una representación simbólica de los códigos de máquina binarios. Describe algunas características, instrucciones y registros comunes del lenguaje ensamblador, así como ventajas y desventajas de su uso. También incluye ejemplos de código ensamblador para sumar tres números y cambiar una cadena de caracteres de mayúsculas a minúsculas.
4. DEFINICION
El lenguaje ensamblador, es un lenguaje de programación de
bajo nivel para los computadores, microprocesadores,
microcontroladores y otros circuitos integrados programables.
Implementa una representación simbólica de los códigos de
máquina binarios y otras constantes necesarias para programar
una arquitectura dada de CPU y constituye la representación más
directa del código máquina específico para cada arquitectura
legible por un programador.
5. CARACTERISTICAS
Su código posee cierta dificultad de ser entendido ya que su estructura es
un lenguaje de bajo nivel.
Difícilmente portable, al cambiar a una máquina con arquitectura
diferente, generalmente es necesario reescribirlo completamente.
Los programas son más rápidos y consumen menos memoria RAM y ROM.
Se tiene un control preciso de las tareas realizadas por un
microprocesador.
se puede controlar el tiempo en que tarda una rutina en ejecutarse, e
impedir que se interrumpa durante su ejecución.
6. VENTAS Y DESVENTAJAS
Al ejecutar un programa, lo procesa más
rápido.
Un programa en ensamblador no ocupa
mucho espacio en memoria porque no
tiene que cargan librerías.
Todo lo que puede hacerse con una
máquina, puede hacerse en el
lenguaje ensamblador de esta máquina
Se pueden hacer tareas específicas.
7. VENTAS Y DESVENTAJAS
Como es un lenguaje de bajo nivel requiere más
instrucciones para realizar el mismo proceso
Requiere de más cuidado por parte del
programador, pues es propenso a que los errores
de lógica se reflejen más fuertemente en la
ejecución.
requerimos más instrucciones primitivas para
describir procesos equivalentes.
Falta de portabilidad, Porque para cada máquina
existe un lenguaje ensamblador.
8. INSTRUCCIONES Y REGISTROS
Tenemos las siguientes instrucciones:
POP, POF,
PUSH, PUSHF
LODS, LAHF,
LDS, LEA, LES
MOV, MOVS,
MOVSB,
MOVSW
AND, NEG,
NOT, OR, TEST,
XOR
ADC, ADD,
DIV, IDIV,
MUL, IMUL,
SBB, SUB
ARITMETICAS LOGICAS CARGA PILATRANSFERENCIA
9. INSTRUCCIONES Y REGISTROS
Tenemos los siguientes registros:
IP, …
OF, DF, IF,
TF, SF, ZF,
AF, PF, CF
SP, BP
PILA
BP, SI, DI
AX, BX, CX,
DX
CS, DS, SS,
ES, FS, GS
PUNTERO DE
INSTRUCCION
BANDERASPUNTEROSPROPOSITO
GENERAL
SEGMENTO
10. EJEMPLOS
Programa
suma de
tres
números:
pila segment para stack "stack"
dw 32 dup (0)
pila ends
datos segment para "datos"
num1 dw 20
num2 dw 30
num3 dw ?
datos ends
codigo segment para "codigo"
empieza proc far
…
assume cs: codigo, ds:
datos, ss:pila
mov ax,datos
mov ds,ax
mov ax,num1
add ax,num2
mov num3,ax
mov dx,num3
mov ax, 4C00H
int 21H
empieza end p
codigo end s
end empieza
11. CAMBIAR DE MAYUSCULAS A MINUSCULAS
UNA CADENA DE CARACTERES:
pila segment para stack "stack"
db 64 dup(0)
pila ends
datos segment para "data"
v1 db "jklmnopqr"
datos ends
codigo segment para "code"
empieza proc far
EJEMPLOS