3. 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 programado
4. EN DONDE SE UTILIZA?
• Note que, en el uso profesional normal, el término ensamblador es
frecuentemente usado tanto para referirse al lenguaje ensamblador como
también al programa ensamblador (que convierte el código fuente escrito en
el lenguaje ensamblador a código objeto que luego será enlazado para
producir lenguaje de máquina). Las dos expresiones siguientes utilizan el
término "ensamblador":
5. TIPOS DE LENGUAJES
• Lenguaje de bajo nivel: Es aquel en el que sus instrucciones ejercen un
control directo sobre el hardware y están condicionados por la estructura
física de la computadora que lo soporta.
• Lenguaje de alto nivel: Se caracteriza por expresar los algoritmos de una
manera adecuada a la capacidad cognitiva humana, en lugar de a la
capacidad ejecutora de las máquinas.
6. • Lenguaje de maquina: Es el único que entiende directamente la
computadora, utiliza el alfabeto binario que consta de los dos únicos
símbolos 0 y 1, denominados bits (abreviatura inglesa de dígitos binarios).
7. IMPORTANCIA DEL LENGUAJE ENSAMBLADOR
• La importancia radica principalmente que se trabaja directamente con
el microprocesador; por lo cual se debe de conocer el funcionamiento interno
de este, tiene la ventaja de que en él se puede realizar cualquier tipo
de programas que en los lenguajes de alto nivel no lo pueden realizar. Otro
punto sería que los programas en ensamblador ocupan menos espacio
en memoria.
9. ESTRUCTURA Y ORGANIZACIÓN DE UN PROCESADOR (CPU)
Unidad Central de Procesamiento también conocido como microprocesador o
simplemente procesador.
10. QUE ES?
• Es el circuito integrado central y más complejo de un sistema informático
conformado por millones de componentes electrónicos.
• Es el encargado de ejecutar los programas, desde el sistema operativo hasta
las aplicaciones de usuario; sólo ejecuta instrucciones programadas en
lenguaje de bajo nivel, realizando operaciones aritméticas y lógicas
simples, tales como sumar, restar, multiplicar, dividir, las lógicas binarias y
accesos a memoria.
11. ESTRUCTURA INTERNA
• El microprocesador 8086 y el 8088 tienen internamente dos componentes, la
Unidad de Interfaz del Bus y la Unidad de ejecución (Bus Interface Unit (BIU)
y Execution Unit (EU)).
12. Registro AX: El registro AX es el registro
acumulador, es utilizado para operaciones que
implican entrada/salida, y multiplicación y división
(estas dos últimas en conjunto con el registro DX)
Registro BX: El registro BX es el registro base, y
es el único registro de propósito general que
puede ser un índice para direccionamiento
indexado
Registro CX: El registro CX es conocido como el
registro contador. Puede contener un valor para
controlar el número de veces que un ciclo se
repite o un valor para corrimiento de bits
Registro DX: El registro DX es el registro de
datos. En algunas operaciones se indica mediante
este registro el número de puerto de
entrada/salida, y en las operaciones de
multiplicación y división de 16 bits se utiliza junto
con el acumulador AX.
13. SP = El apuntador de pila de 16 bits está asociado
con el segmento SS y proporciona un valor de
desplazamiento que se refiere a la palabra actual que
está siendo procesada en la pila
BP = El apuntador base de 16 bits facilita la
referencia de parámetros dentro de la pila.SI =
Puntero índice: Sirve como puntero fuente para las
operaciones con cadenas. También sirve para
realizar direccionamiento indirecto.
DI = Puntero destino: Sirve como puntero destino
para las operaciones con cadenas. También sirve
para realizar direccionamiento indirecto.
14. UNIDAD ARITMÉTICA Y LÓGICA
• Unidad aritmético lógica, también conocida como ALU (siglas en
inglés de arithmetic logic unit), es un circuito digital que calcula
operaciones aritméticas (como suma, resta, multiplicación, etc.) y
operaciones lógicas (si, y, o, no), entre dos números.
15. INDICADORES (FLAGS)
• OF (Over flow flag, desbordamiento): Indica desbordamiento
del bit de mayor orden después de una operación aritmética de
números con signo (1=existe overflow; 0=no existe overflow).
• DF (Direction flag, Direccion): Controla la selección de
incremento o decremento de los registros SI y DI en las
operaciones con cadenas de caracteres (1=decremento
automático; 0=incremento).
• IF (Interruption flag, Interrupcion): Controla el disparo de las
interrupciones (1=habilita las interrupciones; 0=deshabilita las
interrupciones) Indica que una interrupción externa, como la
entrada desde el teclado sea procesada o ignorada.
• TF (Trap flag, Trampa): Permite la operación del procesador en
modo de depuración (paso a paso)
• SF (Sign flag, Signo): Contiene el signo resultante de una
operación aritmética (0=positivo; 1=negativo).
16. • ZF (Zero flag, Zero): Indica el resultado de una operación aritmética
o de comparación (0=resultado diferente de cero; 1=resultado igual
a cero).
• AF (Auxiliary carry flag, Acarreo auxiliar): Contiene el acarreo del
bit 3. Esta bandera se prueba con las instrucciones DAA y DAS para
ajustar el valor de AL después de una suma o resta BCD.
• PF (Parity flag, Paridad): Indica si el número de bits 1, del byte
menos significativos de una operación, es par (0=número de bits 1
es impar; 1=número de bits 1 es par).
• CF (Carry flag, Acarreo): Contiene el acarreo del bit de mayor
orden después de una operación aritmética; también almacena el
contenido del último bit en una operación de desplazamiento o de
rotación.
17. SISTEMA DE CONTROL DE LA UNIDAD DE EJECUCIÓN
• Es el encargado de decodificar las instrucciones
que le envía la cola y enviarle las órdenes a la
unidad aritmética y lógica según una tabla que
tiene almacenada en ROM llamada CROM (Control
Read Only Memory).
18. REGISTROS DE LA UNIDAD DE INTERFAZ CON EL BUS:
• CS: Registro de segmento de código: El DOS almacena la dirección inicial
del segmento de código de un programa en el registro CS.
• DS: Registro de segmento de datos:
La dirección inicial de un segmento de datos de programa es almacenada en
el registro DS.
• ES: Registro de segmento extra:
Algunas operaciones con cadenas de caracteres (datos de caracteres)
utilizan el registro esta de segmento para manejar el direccionamiento de
memoria.
• SS: Registro de segmento de pila: El registro SS permite la colocación en
memoria de una pila, para almacenamiento temporal de direcciones y datos.
• IP: Contiene el desplazamiento de dirección de la siguiente instrucción que
se ejecuta.