Está en la página 1de 30

INSTRUCCIONES PARA LA

MANIPULACIN DE BANDERAS
El registro de banderas tiene diferentes funciones en cada uno de sus bits, algunos de estos bits
(banderas) pueden ser controlados por instrucciones directas de bajo nivel; sin embargo, se debe tener
en cuenta que estas banderas estn ntimamente ligadas con funciones internas del microprocesador,
por ejemplo la lnea INTR (interrupcin por hardware), acarreos, etc., y que al manipularlas
incorrectamente podemos llegar al extremo de bloquear la computadora. Es por esto que se recomienda
que slo programadores experimentados modifiquen dichas banderas.

Bander
Bit Nombre
a
CF

Bandera de acarreo (carry flag)

PF

Bandera de paridad (parity flag)

AF

Bandera de acarreo auxiliar (adjust


flag)

ZF

Bandera de cero (zero flag)

SF

Bandera de signo (sign flag)

DF

10

Bandera de direccin (direction flag)

OF

11

Bandera de desbordamiento (overflow


flag)

INSTRUCCIONES DE SALTO
Sirven para que el procesador, en lugar de ejecutar la siguiente instruccin , pase a ejecutar otra en
lugar que se denomina destino de salto.

INSTRUCCIONES PARA CICLOS

INSTRUCCIONES LGICAS
En este grupo se incluyen las instrucciones de conjuncin, disyuncin, esxclusiva y negacin, la
aplicacin practica no es de siempre sin embargo suelen estar presentes en la mayoria de los
programas.
Algunos ejemplos son:
1. AND: Realiza una operacin de Y lgico entre el operando origen y el operando destino quedando el resultado en el
operando destino.
SINTAXIS:
AND destino, origen
Ejemplo:

AND AX,BX

; AX = AX AND BX

2. OR: Realiza una operacin de O lgico a nivel de bits entre los dos operandos , almacenndose despus dicho
resultado en el operando destino.
SINTAXIS:
OR destino, origen
Ejemplo:

OR AL,BL

; AL = AL OR BL

3. XOR: Realiza una operacin de O exclusivo lgico a nivel de bits entre los dos operandos , almacenndose despus
dicho resultado en el operando destino.
SINTAXIS:
XOR destino, origen
Ejemplo:

XOR CX,BX

; CX = CX XOR BX

INSTRUCCIONES DE ROTACIN Y
DESPLAZAMIENTO
Instrucciones de rotacin

1.- RCL (Rotacion a la izquierda con acarreo).


2.- RCR (Rotacion a la derecha con acarreo).
3.- ROL (Rotacion a la izquierda).
4..- ROR (Rotacion a la derecha).

desplazamiento
1.-SHL (Shift Left = desplazamiento a la izquierda)

2.-SHR (Shift Right = desplazamiento a la derecha)


3.-SAR (Shift Arithmetic Right = desplazamiento aritmtico a la
derecha)
4.- SAL (Shift Aritmetic Left = desplazamiento aritmtico a la izquierda)

INSTRUCCIONES PARA LA PILA


Es un grupo de localidades de memoria reservada con la finalidad de
proporcionar almacenamiento temporal de informacin con programas
tipo LIFO . (Last In First Out, Ultimo en entrar, Primero en salir).
Instrucciones bsicas de control:
.Push [meter]
.Pop[sacar]
Cuando se ejecuta la instruccin Push, el contenido del operando se
almacena en la ultima posicin de la pila.

INSTRUCCIONES PARA EL MANEJO DE


STRINGS

Cuando decimos cadena nos referimos a una cadena de caracteres ,


palabra, frase(string en ingles ) es una secuencia ordenada de longitud
arbitraria (aunque finita ) de elementos que pertenecen a un cierto
lenguaje formal o alfabeto ( letras, nmeros o signos).

Operaciones con cadenas


Para procesar una cadena de caracteres, assembler nos proporciona
cinco instrucciones para cadenas.

INTERRUPCIONES ASSEMBLER
Una interrupcin es un estado en
el cual el microprocesador
detiene la ejecucin de un
programa para atender una
peticin especial solicitada por el
propio programa o por un
dispositivo fsico conectado al
microprocesador externamente.

INTERRUPCIONES ASSEMBLER
Las interrupciones fueron
creadas para facilitar al
programador el acceso a los
diferentes dispositivos de la
computadora (puertos de
comunicaciones,
terminales, impresoras,
etc.).

Las interrupciones
permiten ejecutar
funciones pausando el
funcionamiento normal
del Sistemas.
El fluno normal de los
algoritmos de assembler
y ejecutar una funcion
en un momento dado.

Ejecucin de una interrupcin


Cuando durante la ejecucin de un programa se produce una
interrupcin, el microprocesador realiza los siguientes pasos:
1.- Detiene la ejecucin del programa
2.- Almacena los registros CS, IP y Banderas en la pila
3.- Modifica el CS y el IP para que apunten a la direccin donde se
encuentra la rutina de interrupcin.

Ejecucin de una interrupcin


4.- Ejecuta las instrucciones de la rutina de interrupcin.
5.- Restablece usando la instruccin RETI los valores originales de los
registros CS, IP y Banderas.
6.- Continuar con la ejecucin del programa en el punto donde fue
interrumpido. Las rutinas se almacenan en la memoria de la
computadora cada vez que sta es inicializada, a esto se le conoce
como vector de interrupciones.

Tipos de interrupciones
El microprocesador puede atender dos tipos de interrupciones:
interrupciones por software e interrupciones por hardware.
Las interrupciones por software son llamadas desde los programas y
son proporcionadas por el sistema operativo (MS-DOS).
Existen dos tipos de estas: las interrupciones del DOS y las
interrupciones del BIOS (Basic Input Output System o Sistema Bsico de
Entrada/Salida). Estas interrupciones son invocadas con la instruccin
INT del ensamblador.

Tipos de interrupciones
Por otro lado, las interrupciones por Hardware son proporcionadas
por el propio microprocesador y tambin existen dos tipos:
interrupciones por hardware internas y las interrupciones por
hardware externas. Las interrupciones internas son invocadas por el
microprocesador cuando se produce alguna operacin incorrecta, como
por ejemplo, un intento de dividir por cero o una transferencia de datos
entre registros de diferentes longitudes.

Las interrupciones externas son


provocadas
por
los
dispositivos
perifricos
conectados
al
microprocesador. Para lograr esto, a
cada dispositivo perifrico se le asigna
una lnea fsica de interrupcin que lo
comunica con el microprocesador por
medio de un circuito integrado
auxiliar, el cual se conoce como
controlador
programable
de
interrupciones (PIC).

Las computadoras basadas en el


microprocesador 8086/8088 cuentan solamente
con un PIC, con lo cual pueden proporcionar
hasta 8 lneas de interrupcin (IRQ), las cuales
son llamadas IRQ0 a IRQ7, por otro lado, las
computadoras basadas en el microprocesador
80286 y posteriores cuentan con dos chips
controladores, con los cuales pueden
proporcionar hasta un mximo de 16 lneas
IRQ, las cuales son llamadas IRQ0 a IRQ15.

Interrupciones del BIOS


La siguiente es una lista de las interrupciones por software disponibles
por el sistema operativo.
INT 20H Termina la ejecucin de un programa.
INT 22H Direccin de terminacin. Guarda la direccin donde se
transfiere el control cuando termina la ejecucin del programa.
INT 23H Direccin de la interrupcin que se ejecuta cuando se
presiona Ctrl-Break.

Interrupciones del BIOS


INT 24H Manejo de errores crticos.
INT 25H Lectura directa de sectores del disco.
INT 26H Escritura directa de sectores del disco.
INT 27H Terminar un programa y devolver el control al DOS sin borrar
el programa de la memoria.
INT 21H Esta interrupcin proporciona una gran cantidad de
funciones, las cuales deben ser invocadas en conjunto con el
registro AH.

1 Terminacin de un programa.
2 Entrada de carcter con eco.
3 Salida a pantalla.
4 Entrada por el puerto serie.
5 Salida por el puerto serie.
6 Salida a la impresora.
7 E/S directa por pantalla.
8 Entrada directa de carcter sin
eco.
9 Entrada de carcter sin eco.
10 Visualizar cadenas de
caracteres.
11 Entrada desde el teclado.
12 Comprobacin del estado de
entrada.
13 Borrar registro de entrada.
14 Inicializar unidad de disco.

INT 21H Esta


interrupcin
proporciona una gran
cantidad de funciones,
las cuales deben ser
invocadas en conjunto
con el registro AH.

A continuacin se mostrarn algunos programas que utilizan


llamadas a diferentes interrupciones por software tanto del BIOS
como del DOS.
.COMMENT
.MODEL tiny
.DATA
Mensaje db 'Interrupciones 21h del
DOS',13,10,'$'
.CODE
Inicio:
Lea DX,Mensaje
Mov Ah,09h
Int 21h
Mov ax,4C00h
Int 21h
END Inicio
END

El siguiente programa utiliza


la funcin 09h de la
interrupcin 21 del DOS
para mostrar en la pantalla
un mensaje.

El siguiente programa
exhibe dos cadenas de
caracteres
en
la
pantalla,
pero
a
diferencia del anterior
ste no regresa al DOS
inmediatamente,
espera a que cualquier
tecla sea presionada y
entonces termina, para
ello se utiliza la funcin
10h de la interrupcin
16h del BIOS.

.MODEL tiny
.DATA
Mensaje db 'Mas interrupciones',13,10,'$'
Mensaje2 db 'Presione cualquier
tecla...',13,10,'$'
.CODE
Inicio:
Lea DX,Mensaje
Mov Ah,09h
Int 21h
Lea DX,Mensaje2
Mov Ah,09h
Int 21h
Mov Ah,10h
Int 16h
Mov ax,4C00h
Int 21h
END Inicio
END

Cmo se gestionan las


interrupciones del Intel
8086?
Las interrupciones del Intel 8086

se
gestionan
por
el
Controlador
de
interrupciones. Dicho controlador tiene cuatro
registro (memorias) de 16 bits cada uno.
Cada uno de estos registros tiene una
funcin especifica y gracias a ellos se van a
gestionar funciones como las prioridades de
los perifericos, peticiones de servicio etc.

Estos registro son:


- Registro IRR: marca las peticiones de los perifericos
- Registro IMR: est en el puerto 21h y da permisos a las peticiones de
las interrupciones. Pasa si es 0 y no pasa si es 1.
- Registro IPR: lgica que selecciona la prioridad
- Registro ISR: marca que peticiones se estn activando
- Registro de Control: est en el puerto 20h y es el encargado de avisar
al procesador que ha acurrido una interrupcin.

Gracias por su
atencin

También podría gustarte