Sei sulla pagina 1di 31

INSTITUTO TECNOLGICO DE CELAYA

[Prctica referente a la actividad 8]

ASIGNATURA: LENGUAJEZ DE INTERFAZ

Profesor: GONZLEZ GONZLEZ RICARDO

Alumnos: CAMACHO ROCHA JUAN JESS GMEZ LPEZ JOS ELIAS ARROYO PICHARDO LUIS MANUEL

FECHA DE ENTREGA :[12/06/2013]

INSTITUTO TECNOLGICO DE CELAYA

CARRERA ING. EN SISTEMAS COMPUTACIONALES NOMBRE DE LA PRCTICA Actividad 8

NOMBRE DE LA ASIGNATURA LENGUAJES DE INTERFAZ DURACIN 5 das

INTRODUCCIN El lenguaje ensamblador x86 es la familia de los lenguajes ensambladores para los procesadores de la familia x86, que incluye desde los procesadores Intel 8086 y 8088, pasando por los Pentium de Intel y los Athon de AMD y llegando hasta los ltimos procesadores x86 de estas compaas. Los procesadores Intel 8086 y 8088 fueron los primeros de 16 bits en tener un conjunto de instrucciones conocido actualmente como x86. Fueron un paso evolutivo en comparacin con la generacin anterior de CPUs de 8 bits, como el 8080 y heredaron muchas caractersticas e instrucciones, las cuales fueron extendidas para trabajar con 16 bits. Ambos CPUs contenan un bus de direcciones de 20 bits y un grupo de registros internos de 16 bits.

OBJETIVO El alumno deber adquirir la competencia para elaborar un programa en lenguaje ensamblador que sea capaz de capturar dos secuencias de 8 dgitos binarios. A dichas secuencias se les debern aplicar 3 operaciones lgicas de las cuales se mostrara su resultado en pantalla. Operaciones lgicas por aplicar: AND, OR y XOR. Ejemplo: Secuencia1: 10101001 Secuencia2: 01110100 AND OR XOR 00100000 11111111 11011101

Despus de elaborar el programa y mostrar la salida en pantalla el alumno deber utilizar su ingenio para poder producir una salida a travs del puerto paralelo y mostrar en una Protoboard los resultados obtenidos anteriormente de las operaciones lgicas. El trabajo del Protoboard consiste en encender o apagar un conjunto de 8 leds que son la representacin binaria de dicha operacin.

FUNDAMENTO
Bit es el acrnimo Binary digit (dgito binario). Un bit es un dgito del sistema de numeracin binario. Mientras que en el sistema de numeracin decimal se usan diez dgitos, en el binario se usan slo dos dgitos, el 0 y el 1. Un bit o dgito binario puede representar uno de esos dos valores, 0 1. Se puede imaginar un bit, como una bombilla que puede estar en uno de los siguientes dos estados:

Apagada Puerta lgica

o Encendida

Una puerta lgica, o compuerta lgica, es un dispositivo electrnico con una funcin booleana. Suman, multiplican, niegan o afirman, incluyen o excluyen segn sus propiedades lgicas. Se pueden aplicar a tecnologa electrnica, elctrica, mecnica, hidrulica y neumtica. Son circuitos de conmutacin integrados en un chip. Puerta AND

Smbolo de la funcin lgica Y: a) Contactos, b) Normalizado y c) No normalizado

La puerta lgica Y, ms conocida por su nombre en ingls AND ( ), realiza la funcin booleana de producto lgico. Su smbolo es un punto (), aunque se suele omitir. As, el producto lgico de las variables A y B se indica como AB, y se lee A y B o simplemente A por B. La ecuacin caracterstica que describe el comportamiento de la puerta AND es:

Su tabla de verdad es la siguiente:

Tabla de verdad puerta AND Entrada 0 0 1 1 Entrada 0 1 0 1 Salida 0 0 0 1

As, desde el punto de vista de la aritmtica mdulo 2, la compuerta AND implementa el producto mdulo 2.

Puerta OR

Smbolo de la funcin lgica O: a) Contactos, b) Normalizado y c) No normalizado


La puerta lgica O, ms conocida por su nombre en ingls OR ( de suma lgica. ), realiza la operacin

La ecuacin caracterstica que describe el comportamiento de la puerta OR es:

Su tabla de verdad es la siguiente:

Tabla de verdad puerta OR Entrada 0 Entrada 0 Salida 0

0 1 1

1 0 1

1 1 1

Podemos definir la puerta O como aquella que proporciona a su salida un 1 lgico si al menos una de sus entradas est a 1.

Puerta OR-exclusiva (XOR)

Smbolo de la funcin lgica O-exclusiva: a) Contactos, b) Normalizado y c) No normalizado


La puerta lgica OR-exclusiva, ms conocida por su nombre en ingls XOR, realiza la funcin booleana A'B+AB'. Su smbolo (signo ms "+" inscrito en un crculo). En la figura de la derecha pueden observarse sus smbolos en electrnica. La ecuacin caracterstica que describe el comportamiento de la puerta XOR es: |Su tabla de verdad es la siguiente:

Tabla de verdad puerta XOR Entrada 0 0 1 1 Entrada 0 1 0 1 Salida 0 1 1 0

Se puede definir esta puerta como aquella que da por resultado uno, cuando los valores en las entradas son distintos. Ejemplo: 1 y 0, 0 y 1 (en una compuerta de dos entradas). Se obtiene cuando ambas entradas tienen distinto valor.

MATERIAL Pc con Salida puerto paralelo Sistema Operativos Windows Xp Profesional Protoboard 8 leds Cable para Protoboard 8 Resistencias de 220 Ohms Software Emulador 8086 Software UserPort Conocimientos bsicos del lenguaje ensamblador para el procesador 8086 de Intel.

DESARROLLO Paso 1 A continuacin proceda a descargar del siguiente enlace el Software denominado Emu8086. Enlace para descarga: http://emu8086.waxoo.com/ Este emulador es indispensable debido a que nos brinda funciones especficas para poder compilar, emular y desarrollar programas ejecutables en lenguaje ensamblador para el procesador 8086 de Intel. Despus de descargar el programa estos datos le sern indispensables para tener el programa completo y poder hacer uso de todas sus caractersticas: Datos Usuario: Cracked-By-Team-AggressioN!!! Contrasea: Serial: KDLSR2ERKRG4U8PDP4UA

Paso 2 Proceda a abrir el archivo descargado denominado emu8006.exe y ejectelo.

Acepte trminos y condiciones, pulse Finish para dar por terminada la instalacin.

Paso 3 Ejecutamos el acceso directo creado despus de la instalacin del emu8086. Despus de ejecutar el acceso directo se indica ingresar un cdigo para registrarlo y poder disfrutar de manera libre y completa de la aplicacin. Dicho cdigo le fue proporcionado en el Paso 1 de esta prctica. Favor de consultar este apartado.

Seleccionamos la parte indicada con color rojo.

Ingresamos los datos correspondientes y despus damos clic en Ok para finalizar la activacin del producto.

Listo! Ahora podemos utilizar la aplicacin para desarrollar programas en lenguaje ensamblador.

Paso 4 Despus de buscar diferentes alternativas para la solucin del problema decidimos utilizar 2 cadenas, Secuencia1 y Secuencia2 para el almacenamiento de nuestras secuencias a capturar, posteriormente declaramos 3 ms de igual dimensin VectorAnd, VectorOr y VectorXor para guardar los resultados de las operaciones lgicas AND, OR y XOR.

En la imagen siguiente se muestra la parte del cdigo donde se da comienzo al conjunto de sentencias o instrucciones a ejecutarse. Se puede apreciar la llamada a un procedimiento denominado Mesg el cual es el encargado de imprimir en pantalla la leyenda Ingresa un numero de 8 dgitos

binarios A continuacin una etiqueta denominada ciclo, que no es mas que un loop o ciclo encargado de llenar y almacenar nuestra cadena de Bytes para la Secuencia1 introducida mediante teclado.

Este fragmento de cdigo es similar al anterior al anterior la nica diferencia es que este esta encargado de llenar y almacenar los datos para la Secuecia2.

Esta seccin e cdigo despliega Msg1 en pantalla el cual no hace ms que escribir

en pantalla la leyenda Secuencia1, posteriormente el contenido almacenado en la cadena de caracteres Secuencia1. Enseguida se despliega en pantalla el Msg2 que es el que muestra en pantalla Secuencia2 y por ultimo el contenido almacenado de la Secuencia2.

Ahora que capturamos las dos Secuencias binarias, podemos proceder a calcular el resultado de las operaciones lgicas. El siguiente fragmento de cdigo se encarga de realizar la operacin AND entre la Secuencia1 y la Secuencia2 Byte por Byte, despus de calculada la operacin el resultado es almacenado en la cadena de Bytes VectorAnd.

Despus mostramos en pantalla MsgAnd que contiene la leyenda AND: y posterior a este tambin se imprime en pantalla la cadena VectorAnd, la cual contiene ahora el resultado de aplicar la operacin AND entre la Secuencia1 y

Secuencia2. En esta seccin tambin podemos apreciar que se realiza una conversin de smbolo en ASCII a el valor real de lo que tenemos almacenado en el VectorAnd, y permitirnos utilizar en operaciones aritmticas los valores contenidos en el mismo.

Despus es llevado acabo un proceso de conversin de nuestra cadena VectorAnd a Decimal puesto que esta se conforma de 9 Bytes, 8 valores binarios y 1 fin de cadena y como la salida por puerto paralelo solo cuenta con 8 bits de Salida, resulta imposible enviar la Cadena sin antes ser convertida a su equivalente en Decimal. Nota: Enseguida se explica el motivo concreto de porque realizamos una conversin VectorAnd = [0,0,0,0,0,0,0,0] donde cada cero equivale a un Byte. 8 Bytes = 64 Bits 1 Byte = 8 Bits Salida a puerto paralelo = 8 Bits Por ultimo se aprecia una parte del cdigo en donde se carga al registro DX el puerto 0378h, posteriormente Suma que contiene el valor Decimal equivalente al Binario almacenado en nuestra Cadena VectorAnd, es almacenada en la parte baja del Registro AX y para finalizar se manda como salida Suma al puerto DX que tiene cargado el puerto de salida de datos.

Cada que se aprecien este par de lneas de cdigo no indican mas que una interrupcin o sea la 21h a DOS mediante la funcin 08h, la cual permite un tiempo de espera o valga la redundancia una interrupcin al sistema hasta que sea ingresado un carcter por medio del teclado y sin generar Echo en pantalla. Esto nos permite visualizar de mejor manera nuestros resultados en pantalla. Y tambin nos da la libertad para decidir cuando ingresar un carcter mediante teclado y de esta forma continuar con la ejecucin del programa.

El proceso para calcular OR es similar a calcular AND de hecho la sintaxis y lgica es la misma, las nicas diferencias existentes son que en esta es utilizada la operacin lgica OR y el resultado de dicha operacin ser almacenado en la cadena de caracteres VectorOr.

El proceso para calcular XOR es idntico a calcular las dos operaciones lgicas anteriores de hecho la sintaxis y lgica es la misma, las nicas diferencias existentes son que en esta es utilizada la operacin lgica XOR y el resultado de dicha operacin ser almacenado en la cadena de caracteres VectorXor.

Una vez que se han realizado todas las operaciones lgicas y se mostraron sus respectivas salidas por medio del puerto paralelo es necesario terminar la ejecucin del programa y es por este motivo que en esta parte del cdigo se lleva a cabo un salto incondicional al Procedimiento Fin.

Por ultimo tenemos la declaracin de procedimientos, los cuales han sido llamados en diferentes partes del programa y tienen por supuesto una funcin especfica dentro del mismo. El procedimiento Salto fue creado para dar estructura a todas las impresiones mostradas en pantalla, el procedimiento Mesg tiene la funcin de desplegar en pantalla la leyenda Ingresa una secuencia de 8 dgitos binarios y este es llamado dos veces al inicio del programa para pedir al usuario ingrese los datos para la Secuencia1 y Secuencia2 con las que estuvimos trabajando. Por ltimo y para finalizar el programa tenemos un procedimiento llamado Fin, el cual se encarga de terminar el programa mediante la Interrupcin 21h Funcin 4ch.

Paso 5 Habilitacin de puerto paralelo El puerto paralelo se utiliza generalmente para manejar impresoras. Sin embargo, dado que este puerto tiene un conjunto de entradas y salidas digitales, lo empleamos para hacer nuestra prctica ya que es una lectura de datos y estamos controlando un dispositivo.
Para poder tener un acceso libre al puerto paralelo debemos entrar de manera directa a la BIOS de nuestro PC y as poder tener un acceso total a dicho puerto. Depende de cada equipo la manera en la que se desea entrar a la BIOS en este caso nuestro ordenador se enciende y se debe presionar la tecla F1.

Ya en BIOS buscamos la configuracin de los puertos. Una vez identificada la configuracin del puerto seleccionamos la opcin que dice que mantendr el puerto de manera bidireccional.

Por qu tener el puerto en modo bidireccional?

Habilitar el puerto 378h que es el que utiliza el puerto paralelo para la entrada y salida de datos Despus de realizar los cambios en la configuracin BIOS de tu equipo ingresa a la siguiente liga: http://hem.passagen.se/tomasf/UserPort/ Descarga el software Sotware: UserPort.zip UserPort 2.0. Full port address range support. Abre la carpeta de descargas y all encontraras un archivo .Rar con el nombre UserPort y proseguimos para abrir el UserPort.Rar

Dentro del archivo UserPort.Rar se encuentra una carpeta con el mismo nombre, se abre y encontraremos los siguientes archivos

Extraemos los 3 archivos marcados en la imagen anterior y copiar el archivo UserPort.Sys. Una vez copiado dirgete a la unidad C de tu equipo, abre la carpeta que dice Windows y una vez dentro busca all la carpeta de nombre System32, brela y all Dentro encontraras una carpeta llamada Drivers es en esta carpeta especficamente que debers pegar el archivo UserPort.Sys que ya habamos copiado.( C:\Windows\System32\Drivers) Ahora debes regresar a la carpeta donde se extrajeron los archivos que estaba en el UserPort.rar, encontraras un archivo ejecutable pulsa doble click sobre el para inicializar la aplicacin.

Selecciona una a una la lista de intervalos que vienen por defecto y remuvelas presionando el botn REMOVE, ahora ingresa 000-378 y selecciona ADD Despus selecciona el intervalo ingresado y da click en el botn Start, te deber aparecer un mensaje idntico al que te muestro en la imagen indicando que el puerto est activado o liberado.

Selecciona Aceptar y cierra la aplicacin y procede a ejecutar el programa.

IMPORTANTE: La correcta implementacin de este software es de vital importancia para que al momento de realizar esta prctica y llevar acabo la ejecucin del programa podamos obtener los resultados deseados. Esto se debe a que si el puerto paralelo no se encuentra habilitado liberado ser imposible mandar el Byte de a la salida al puerto y por ende imposible ver reflejados los resultados de las operaciones en nuestro Protoboard.

Paso 6 ELABORACION DE CIRCUITO CON LEDS Primero antes de empezar el armado del circuito necesitaremos saber cmo es que funciona el puerto paralelo, para poder entonces llevar a cabo el proceso de armado del circuito y conexin del mismo al puerto paralelo. Nosotros usamos puertos para comunicarnos con la PC va Mdem, impresora, teclado, mouse, etc. Las seales que se envan y reciben en el puerto pueden ser 0 1, lo cual sera apagado o encendido respectivamente. Un puerto paralelo puede enviar hasta 8 bits y recibir 5 al mismo tiempo. En la actualidad las computadoras modernas ya no traen integrado el puerto paralelo, por lo cual es necesario conseguir una computadora viejita que cuente con este tipo de puerto. En la siguiente imagen se muestra cual es el puerto paralelo de las computadoras viejitas:

La siguiente imagen nos muestra la funcionalidad de cada pin en este puerto.

DESARROLLO: Para enviar los datos por el puerto se utilizan los pines 2 al 9, esto significa que del pin 2 al 9 se debe de conectar la parte positiva de los leds que vamos a conectar en el circuito. Los puertos 18 al 25 se utilizan como tierra, por lo cual podemos conectar la parte negativa de los leds en cualquiera de estos pines. Los puertos que se muestran en color rojo (del pin 10 al 13 y 15) y los pines en color amarillo (pines 1, 14,16 y 17) no se utilizaran para nada, por lo cual no conectaremos ningn cable en estos pines. La siguiente imagen muestra el diagrama de nuestro circuito que conectaremos al puerto paralelo.

Tabla de smbolos del diagrama del circuito. D1,D2,D3,D4,D5,D6,D7,D8 Son leds que encenderemos.

R1,R2,R3,R4,R5,R6,R7,R8

Son resistencias para proteger que nuestros leds se puedan quemar

GND

Representa tierra.

la

Representa el cable con el que conectaremos cada elemento en el circuito.

El siguiente paso es conseguir una protoboard donde conectaremos todos los componentes del circuito. Para que puedan comprender mejor lo que es una protoboard a continuacin damos una pequea explicacin de lo que es y como podemos utilizarla. El "protoboard", "breadboard" (en ingls) o "placa board" es un tablero con orificios conectados elctricamente entre s, habitualmente siguiendo patrones de lneas, en el cual se pueden insertar componentes electrnicos y cables para el armado y

prototipado de circuitos electrnicos y sistemas similares. Est hecho de dos materiales, un aislante, generalmente un plstico, y un conductor que conecta los diversos orificios entre s. Uno de sus usos principales es la creacin y comprobacin de prototipos de circuitos electrnicos antes de llegar a la impresin mecnica del circuito en sistemas de produccin comercial. Recuperado de: http://es.wikipedia.org/wiki/Placa_de_pruebas el 12 de junio de 2013

Patrn tpico de disposicin de las lminas de material conductor en una placa de pruebas. Una vez que ya hemos comprendido el funcionamiento de una protoboard, procederemos a conectar todos nuestros componentes elctricos para poder formar nuestro circuito, y poder conectarlo a nuestro puerto paralelo de nuestra computadora.

PASO 7 El siguiente paso es crear un archivo Ejecutable del programa y para utilizamos el Software Emu8086, es necesario tener nuestro programa abierto en la aplicacin y despus dar click en el botn del panel superior que dice Compile, se te pedir des un nombre a tu proyecto y en mi caso le dar el nombre de Lgico Leds como se muestra en la siguiente imagen, Despus de seleccionar un nombre para tu proyecto da Click en Guardar.

Tu archivo ejecutable se ha guardado con xito, ve la Unidad c: de tu ordenador y abre la carpeta Emu8086, en este sitio vas a encontrar un carpeta llamada MyBuild, brela y en ella busca el archivo que corresponda al nombre que le diste a tu programa. Bien, pues este es tu archivo ejecutable pulsa doble click izquierdo en el cada vez que desees

ejecutar el programa.

Esta imagen muestra la interfaz que veras despus de ejecutar el programa, procede a introducir dos Secuencias de 8 dgitos binarios.

El primer resultado que se muestra en pantalla es el de la operacin lgica AND entre la Secuencia1 y la Secuencia2. Tambin podemos divisar el smbolo que representa a dicho nmero binario en cdigo ASCII.

La imagen siguiente muestra la correcta salida de los bits sealados a travs del puerto paralelo para la operacin lgica AND.

El segundo resultado a mostrar en pantalla es el de la operacin Logica OR entre la Secuencia1 y la Secuencia2. Tambin podemos divisar el smbolo que representa a dicho nmero binario en cdigo ASCII.

La imagen siguiente muestra la correcta salida de los bits sealados a travs del puerto paralelo para la operacin lgica OR.

El ltimo resultado a mostrar en pantalla es el de la operacin lgica XOR entre la Secuencia1 y la Secuencia2. Tambin podemos divisar el smbolo que representa a dicho nmero binario en cdigo ASCII.

La imagen siguiente muestra la correcta salida de los bits sealados a travs del puerto paralelo para la operacin lgica XOR.

Conclusin General Para concluir la presente prctica, cabe sealar que los equipos de cmputo actuales que cuentan con versiones de un sistema operativo mayor al Windows 95, no permiten manipular directamente cualquier puerto de la computadora, desde un lenguaje ensamblador, por lo cual es necesario un driver (archivo *.sys) que comunique el software con un dispositivo hardware. Ya que si no se libera el puerto paralelo antes de ejecutar nuestro programa en ensamblador parecera que nuestro programa no funciona, ya que no encendera ningn led, cabe sealar que la sintaxis en lenguaje ensamblador para mandar seales a un puerto no es nada complicada, es muy simple, pero si no se tiene liberado el puerto parecera que esas lneas de cdigo para mandar la seal al puerto no funcionaran. Es por ello que para poder saber si nuestro programa realmente funciona o si queremos hacer algunas pruebas de mandar seales al puerto, es de suma importancia liberar el puerto. Otra cosa importante por la cual escogimos mandar seales al puerto paralelo y no a otros puertos de la computadora, es porque este puerto paralelo manda 8 seales de forma paralela que representara un Byte, por lo cual pudimos conectar 8 leds, en los diferentes pines del puerto, de esta forma pudimos encender los 8 leds al mismo tiempo, que a diferencia de otro puerto que manda las seales en forma serial, no podramos conectar 8 leds diferentes, sino que solo podramos conectar un solo led, que ira prendiendo o apagando para poder representar un Byte que se mandara a ese puerto

Nota: en un archivo alterno se encuentran pdfs con informacin acerca de los materiales utilizados as como las pruebas de escritorio y apuntes personales que se necesitaron para poder llevar a cabo esta actividad. Referencias Bibliogrficas
http://www.ramonmedina.name/files/universidad/ac/ac0001.PDF http://www.rinconsolidario.org/eps/asm8086/CAP2.html http://es.wikipedia.org/wiki/Lenguaje_ensamblador_x86#Historia https://es.wikipedia.org/wiki/Bit http://www.youtube.com/watch?v=vFnEN4s-zEw

http://www.portalhacker.net/index.php?topic=73143.28 http://moisesrbb.tripod.com/unidad6.htm#u644 http://moisesrbb.tripod.com/unidad5.htm http://www.itescam.edu.mx/principal/sylabus/fpdb/recursos/r89572.PDF http://moisesrbb.tripod.com/unidad4.htm#unidad416

Potrebbero piacerti anche