viernes, 23 de febrero de 2018

Lista de  interrupciones 
Las principales interrupciones del 8086/8088 








Practica  en clase




EJERCICIO DE MANIPULACIÓN DE PANTALLA
Ensamblador en Pantalla - Manipulación de Pantalla



Color de pantalla


CAMBIA EL  COLOR DE LA PANTALLA



Se cambia el color de pantalla mediante opciones





Al presionar ENTER  la  pantalla cambia  a  color aqua

Al presionar el 2 el  color de la pantalla es  morado



EJEMPLO DE USO DE  CONSTANTES EN EMU8086  Y TURBO   ASSEMBLER

EMU8086


TURBO




Registros de PILA

   La pila es un área de memoria importante y por ello tiene, en vez de uno, dos registros que se usan como desplazamiento (offset) para apuntar a su contenido. Se usan como complemento al registro y son:

1- SP- Stack Pointer: Se traduce como puntero de pila y es el que se reserva el procesador para uso propio en instrucciones de manipulado de pila. Por lo general, el programador no debe alterar su contenido.
2- BP- Base pointer: Se usa como registro auxiliar. El programador puede usarlo para su provecho.


Registro de Apuntador de Instrucciones
   El registro apuntador de instrucciones (IP) de 16 bits contiene el desplazamiento de dirección de la siguiente instrucción que se ejecuta. El IP esta asociado con el registro CS en el sentido de que el IP indica la instrucción actual dentro del segmento de código que se esta ejecutando actualmente. Los procesadores 80386 y posteriores tienen un IP ampliado de 32 bits, llamado EIP.

Registro SI. El registro índice fuente de 16 bits es requerido por algunas operaciones con cadenas (de caracteres). En este contexto, el SI esta asociado con el registro DS.   

Registro DI. El registro índice destino también es requerido por algunas operaciones con cadenas de caracteres. En este contexto, el DI esta asociado con el registro ES.






Ejercicio del  vídeo en EMU8086
INGRESAR DATOS




.model small
.stack 64
.data

    n1 db 0
    n2 db 0
    suma db 0
    msg1 db "Dame el primer valor", '$'
    msg2 db 10, 13, "Dame el segundo valor", '$'
    msg3 db 10,13, "Suma", '$'
 
    .code
    inicio:
    ; direccionamos al segmento de datos
    mov ax, @data
    mov ds, ax
 
    ; solicitamos el primer digito
    mov ah,09
    lea dx, msg1
    int 21h
    ; se lee el primer valor
    mov ah,01
    int 21h
    sub al, 30h ; convertir el caracter a numero
    mov n1,al
 
    ; solicitamos el segundo digito
 
    mov ah, 09
    lea dx, msg2
    int 21h
    ; se lee el primer valor
    mov ah,01
    int 21h
    sub al, 30h ; convertir el caracter a numero
    mov n2, al
 
    ; operacion
    mov al, n1
    add al, n2
    add al, 30h   ; convierte el caracter
    mov suma, al
    mov ah, 09
    lea dx, msg3
    int 21h
 
 
    ; se imprime el caracter con el servicio 02 de la int 21h
    mov ah, 02
    mov dl, suma
    int 21h
    mov ah, 4ch
    end inicio
    end
   






lunes, 12 de febrero de 2018

EJERCICIOS EN  EMU8086  Y  TURBO

emu8086


turbo






Ejemplos    de  banderas en emu8086 


                                                             Bandera CF
CF: Bandera de acareo. 

El tamaño maximo  que  puede  soportar  al  es 255  y se  produjo  un acarreo de 1




Bandera ZF
ZF: Bandera de resultado 0 o comparación igual. 
El resultado  de  la  operación es   0 



Bandera  SF
SF: Bandera de resultado o comparación negativa. 
Resultado de operación aritmética  negativa.



Bandera  OF
OF: Bandera de desbordamiento (aritmético). 
Esta  fuera del  rango







martes, 6 de febrero de 2018

Registro de bandera.

El Registro de banderas es el que informa al usuario el estado actual del
microcontrolador.  


De los 16 bits del registro de banderas, nueve son comunes a toda la familia de procesadores 8086, y sirven para indicar el estado actual de la maquina y el resultado del procesamiento. Muchas instrucciones que piden comparaciones y aritmética cambian el estado de las banderas, algunas cuyas instrucciones pueden realizar pruebas para determinar la acción subsecuente. En resumen, los bits de las banderas comunes son : 

OF (desbordamiento) es el principal indicador de error producido durante las operaciones con   signo. Vale 1 cuando:

• La suma de dos números con igual signo o la resta de dos números con signo opuesto
producen un resultado que no se puede guardar (más de 16 bits).
• El bit más significativo (el signo) del operando ha cambiado durante una operación de    desplazamiento aritmético.
• El resultado de una operación de división produce un cociente que no cabe en el registro  de resultado.

DF (dirección en operaciones con cadenas) si es 1 el sentido de recorrido de la cadena es de   izquierda a derecha, si es 0 irá en sentido contrario.

IF (indicador de interrupción) cuando vale 1 permite al procesador reconocer interrupciones. Si se  pone a 0 el procesador ignorará las solicitudes de interrupción. 

TF (modo traza) indica al procesador que la ejecución es paso a paso. Se usa en la fase de   depuración.

SF (indicador de signo) solo tiene sentido en las operaciones con signo. Vale 1 cuando en una de   estas operaciones el signo del resultado es negativo.

ZF (indicador de cero) vale 1 cuando el resultado de una operación es cero.

AF (acarreo auxiliar) vale 1 cuando se produce acarreo o acarreo negativo en el bit 3.

PF (paridad) vale 1 si el resultado de la operación tiene como resultado un número con un número
par de bits a 1. Se usa principalmente en transmisión de datos.

CF (bit de acarreo) vale 1 si se produce acarreo en una operación de suma, o acarreo negativo en
una operación de resta. Contiene el bit que ha sido desplazado o rotado fuera de un registro o
posición de memoria. Refleja el resultado de una comparación. 


Conclusión   del equipo #1: Puertos paralelos  Un puerto paralelo es una interfaz entre un ordenador y un periférico. El puerto paralelo ...