74
MANUAL DE PRÁCTICAS ARQUITECTURA DE COMPUTADORAS (SCC0402) Ing. Rolando Palacios Ortega Acapulco Gro., Octubre de 2006 SUBSECRETARÍA DE EDUCACIÓN SUPERIOR DIRECCIÓN GENERAL DE EDUCACIÓN SUPERIOR TECNOLÓGICA INSTITUTO TECNOLÓGICO DE ACAPULCO

Manual de Prácticas Arquitectura de Computadoras

Embed Size (px)

DESCRIPTION

Manual de practicas para la materia de Arquitectura de computadoras I.

Citation preview

  • MANUAL DE PRCTICAS

    ARQUITECTURA DE COMPUTADORAS

    (SCC0402)

    Ing. Rolando Palacios Ortega

    Acapulco Gro., Octubre de 2006

    SUBSECRETARA DE EDUCACIN SUPERIOR

    DIRECCIN GENERAL DE EDUCACIN

    SUPERIOR TECNOLGICA

    INSTITUTO TECNOLGICO DE ACAPULCO

  • 2

    Contenido

    Prctica # 1.- Ejecucin de Microoperaciones en una 4 Computadora con arquitectura clsica Prctica # 2.- Ejecucin de Instrucciones en una 26 Computadora con arquitectura clsica Prctica # 3.- Verificacin de los elementos que integran la 48 Arquitectura de una computadora comercial utilizando software especializado Prctica # 4.- Introduccin a un sistema mnimo basado 60 en un microcontrolador Motorola MC68HC12 Bibliografa 74

  • 3

    Introduccin El desarrollo acelerado de la tecnologa de los sistemas electrnicos digitales ha creado un escenario realmente impensable hace pocos aos. Las computadoras hoy en da son omnipresentes, desde principios de los aos setentas, cuando aparecen en el mercado los microprocesadores y las microcomputadoras la evolucin de los circuitos integrados no se ha detenido, pasando por el ao de 1981, cuando se comercializa la primera computadora personal de IBM que signific un parteaguas en la historia de la computacin, ya que a partir de ese momento las computadoras estuvieron al alcance de los hombres y mujeres que anteriormente ni siquiera imaginaban que algn da dependeran tanto de ellas. Para el Ingeniero en Sistemas Computacionales es indispensable profundizar en el estudio de la Arquitectura de Computadoras, ya que esto le permitir aprovechar al mximo todos los recursos disponibles en un sistema de cmputo, independientemente de las tareas que se realicen en l, incluyendo desarrollo de software de base, desarrollo de aplicaciones de software, diseo, instalacin y mantenimiento de sistemas de cmputo y muchas otras tareas. Adems, cuando pareca que todo estaba escrito, aparecen los microcontroladores, computadoras en un circuito integrado cuyas caractersticas los hacen adecuados para aplicaciones relativamente simples, aunque sus recursos son muy amplios. El presente manual incluye cuatro prcticas adecuadas para realizarse dentro del curso y que abarcan el total de los temas incluidos en el programa de Arquitectura de Computadoras, buscando lograr un balance tanto entre la teora y la prctica, como entre el hardware y el software, y adems faciliten el aprendizaje significativo en el alumno, proporcionndole conocimientos y habilidades tiles en su formacin, ajustndose a los objetivos de la carrera. Nuestro agradecimiento a los alumnos de la Generacin 2004 cuyas aportaciones han hecho posible la elaboracin de este Manual de Prcticas de Arquitectura de Computadoras.

  • 4

    Prctica # 1.- Ejecucin de Microoperaciones en una Computadora con arquitectura clsica. Objetivos:

    Disear el modelo de una computadora con arquitectura clsica. Analizar el comportamiento interno de una CPU. Evaluar el modelo a travs de un conjunto de microoperaciones.

    Material:

    Electronics WorkBench Equipo:

    Computadora Personal compatible con IBM PC Diagrama:

    Actividades:

    Investigacin documental relacionada con el tema. Disear el circuito electrnico que realice las funciones del esquema a

    bloques. Capturar el circuito en el entorno de Electronics WorkBench. Verificar la realizacin de microoperaciones de transferencia,

    aritmticas, lgicas y de desplazamiento. Registrar resultados y elaborar informe de la prctica.

  • 5

    Manos a la obra: Antes de empezar es necesario analizar el diagrama a bloques del circuito electrnico que se disear. Hay que tener bien definidos ciertos puntos: Saber cul es el objetivo principal del circuito de acuerdo al diagrama de

    bloques. Conocer minuciosamente el funcionamiento en general del circuito. Tener presente, que tipo de dispositivos electrnicos sern necesarios para

    armar el circuito electrnico. Conocer cual es el funcionamiento de cada uno de los dispositivos que

    forman parte del circuito. As, que antes de todo, es necesario tener estos puntos definidos para evitar conflictos o arbitrariedades durante el transcurso del ensamble del circuito electrnico. Anlisis del esquema a bloques: De acuerdo al esquema a bloques, se identifican ciertos dispositivos necesarios e indispensables para el armado del mismo, estos son: Lneas de entrada, necesarias para introducir datos, para ser procesados. Lneas de salida, necesarias para visualizar los datos, ya procesados. Unidad Aritmtica Lgica (ALU), necesaria para hacer los clculos tanto aritmticos y lgicos con los datos. Acumulador, utilizado principalmente para almacenar el resultado del proceso de los datos, por ejemplo el resultado de una suma entre los registros A,B. Tambin es utilizada principalmente para los desplazamientos hacia la derecha o izquierda. Hay ocasiones en que la ALU genera un bit de acarreo, y para no perderlo, se hace uso de un fllip flop, para almacenar el bit de acarreo. Bus necesario para los caminos virtuales, con l podemos realizar transferencias entre los datos que tienen los registros almacenados. Por ejemplo, para transferir desde la memoria al registro A, es necesario utilizar un camino, o mejor dicho bus, para realizar dicha transferencia. Como utilizamos un solo bus, para cualquier tipo de transferencia, es necesario administrar las lneas, para evitar conflictos prdida de datos, por tal motivo, es necesario implementar en el esquema a bloques, el circuito de tercer estado. El trabajar con ms de un conjunto de datos, es necesario el utilizar registros, para almacenar temporalmente los datos en l, y evitar que anden vagando por nuestro sistema, y mantenerlo en un registro almacenado. En el caso de la entrada, se almacena en un registro, al hacer operaciones con la ALU, es necesario almacenar los dos conjuntos de datos en dos registros ligados a la ALU, para realizar las operaciones aritmticas lgicas entre ellos. Lo mismo pasa con la salida, antes de mandar los datos a la salida, tienen que almacenarse temporalmente en un registro.

  • 6

    Ocurre un caso especial con la memoria interna del CPU, sta esta formada por registros, con el propsito de almacenar los datos en ellos, y adems cuenta con un circuito de tercer estado, para tener el control de las Lneas. La memoria de antemano tiene la necesidad de utilizar por lo menos dos Lneas: 111... Lectura. 222... Escritura. Ya que la memoria realiza una de estas dos funciones una a la vez, no se puede leer un dato, y al mismo tiempo escribir en la memoria un nuevo dato. Por lo que surge la necesidad de administrar estas dos Lneas con un circuito de tercer estado. Diseo a borrador del circuito electrnico: Como ya mencionamos, para el armado del circuito necesitamos: Registros: 74LS116. ALU: 74LS181. Acumulador: 74LS194. Circuito de tercer estado: 74LS244. Flip Flop tipo D: 74LS74. Leds, para visualizar el recorrido que hacen el conjunto de datos. Las Lneas de +5V y GND. La Lneas de datos que constituyen el bus del sistema. Switch controlados desde teclado para manejar las unidades de control. Las unidades de control, son por ejemplo, el clock, los modos de seleccin de las ALU, el tipo de desplazamiento del acumulador, se llaman unidades de control debido a que a partir del estado de ests, el dispositivo acta de una forma otra. Con las lneas de control, se pueden configurar los dispositivos electrnicos del esquema para que realice las funciones que esperamos de l. Las unidades de control dependen del tipo de dispositivo electrnico con el que se est trabajando, para ello es necesario, analizar la tabla del verdad del dispositivo electrnico con el cual se trabaja.

  • 7

    El borrador del circuito electrnico es el siguiente:

    El diagrama explica de manera general el proceso para construir el circuito electrnico.

    Si se observa con detalle el diagrama, se especifica que tipo de circuito integrado se utiliza, y la numeracin que lleva consigo corresponde al pin y su modo de conexin con los ms dispositivos que forman parte del esquema a bloques.

  • 8

    Elaboracin del circuito en Electronics WorkBench:

  • 9

    Descripcin de los dispositivos del circuito electrnico: 74LS116:

    Este tipo de dispositivos se utiliza para el almacenamiento de los datos, es decir, los registros. Para generar este tipo de almacenamiento de datos, es necesario utilizar circuitos integrados 74LS116, que no son otra cosa que registros, se utilizan para el almacenamiento temporal de los datos, en la prctica, la parte de la memoria, esta constituida por este tipo de dispositivos para el almacenamiento de los datos. Vista del encapsulado: Implementacin en el circuito:

  • 10

    Tabla de verdad: Funcionalidad: La principal funcin de este dispositivo es poder almacenar en ellos los datos, con la caracterstica de no perderlos a consecuencia del estado del bus, sino que el nosotros podamos decir que es lo que debe de contener el registro y modificarlo a nuestras necesidades.

    74LS181:

    Este dispositivo corresponde a la Unidad Aritmtica Lgica, que es la encargada de realizar cualquier tipo de operaciones tanto aritmticas como lgicas. Los datos con los cuales se realizan las operaciones, en este caso, estn almacenados en registros que tienen conexin directa con la Unidad Aritmtica Lgica. Es importante aclarar que la Unidad Aritmtica Lgica es un circuito combinacional, es decir el estado de su salida depende estrictamente del estado de sus entradas, adems no es ella quien realiza los desplazamientos, para lo cual, se debe de implementar en el circuito otro tipo de dispositivo. Otro punto importante, es que la ALU puede trabajar de dos modos en donde sus entradas y salidas en alto bien entradas y salidas en bajo, se recomienda trabajar en modo de entradas y salidas en alto, ya que es ms entendible y fcil de utilizar, mientras que el otro modo de entradas y salidas en bajo, cambia totalmente la forma de introducir los datos, y la salida de los mismos. Vista del encapsulado:

  • 11

    Implementacin en el circuito: Tabla de verdad:

  • 12

    Funcionalidad: La principal funcin de la Unidad Aritmtica Lgica es el de realizar operaciones tanto aritmticas lgicas con los contenidos de los registros.

    74LS194:

    Este dispositivo corresponde al acumulador, cuya implementacin en el circuito es necesaria, ya que como su nombre lo indica almacena temporalmente un registro de datos, en este caso, el acumulador almacena temporalmente el registro de datos de la salida de la ALU, es decir almacena los resultados de las operaciones segn la configuracin de la ALU. Adems, es el responsable de realizar cualquier tipo de desplazamientos (izquierda/derecha), para las operaciones de multiplicar dividir entre 2. Vista del encapsulado: Implementacin en el circuito:

  • 13

    Tabla de verdad: Funcionalidad: La principal funcin del acumulador, como su nombre lo indica, es almacenar temporalmente un registro de datos, adems es el encargado de realizar los desplazamientos hacia la izquierda o hacia la derecha. Para realizar los desplazamientos es necesario analizar su tabla de verdad para configurar sus entradas, y de ese modo realice la funcin que deseamos.

    74LS244:

    Este dispositivo corresponde al circuito de tercer estado, que es indispensable en circuitos en donde se utilizan ms de una lnea, con el objetivo de activar una lnea a la vez y no existan problemas de prdidas de datos o desvo de los mismos, consecuentes de no administrar dichas lneas. Este circuito es un claro ejemplo de utilizar ms de una lnea, debido a que el bus utilizado en donde viajan los datos, es un bus comn, lo que significa que los datos que se encuentran en el bus pueden direccionarse a cualquier dispositivo que se encuentre conectado en l. Para tener un control del direccionamiento de estos datos, al transferirlo de cualquier dispositivo a otro, es necesario primero colocarlos en el bus, y posteriormente direccionarlo al registro destino. Por ejemplo, en la lectura y escritura de datos en la memoria, es necesario activar las lneas de lectura o escritura correspondiente a la accin que deseamos realizar, pero se activar una lnea a la vez, para evitar inconsistencia de datos y por ende perdida de los mismos.

  • 14

    Vista del encapsulado: Implementacin en el circuito:

    Tabla de verdad:

  • 15

    Funcionalidad: La principal funcin del circuito de tercer estado es la de administrar las lneas, en este caso las que se encuentran asociadas al bus, y a la memoria. Realizacin de las microoperaciones en el circuito: Programa #1: Este programa tiene como objetivo introducir datos a la entrada, hay que aclarar que el sistema numrico empleado en este circuito electrnico es el sistema binario, por lo que los datos son datos binarios, desde la entrada, proceso y hasta la salida. Siguiendo el sistema binario, se debe de introducir datos en la entrada, y transferir este registro de entrada a la localidad de memoria M1, posteriormente, se vuelve a introducir un nuevo registro de entrada, que har una operacin aritmtica de suma con acarreo con los datos del registro de la memoria M1, utilizando claramente la Unidad Aritmtica Lgica, el resultado se almacenara en el acumulador y posteriormente se transferir al registro de salida. Microoperaciones: START MOV M1, ENT Almacena la entrada en la memoria M1. ADD ENT, M1 Operacin de suma con el contenido de la memoria M1 con la entrada y el resultado lo guarda en acumulador. MOV SAL, AC Transfiere el contenido del acumulador a la salida. END Proceso en el circuito:

    Lo primero que hay que hacer, antes de empezar a introducir datos, es verificar que este activada el circuito de tercer estado en la lnea de lectura (0), y que el circuito de tercer estado de la memoria se encuentren desactivadas.

    Despus se debe de introducir los datos, activando o desactivando los switch de entrada, hay que recordar que el sistema numeracin que empleamos es el sistema binario.

    Una vez que introducimos los datos, hay que activar el reloj del registro de entrada para que los datos pasen de este registro al circuito de tercer estado del bus. El reloj del registro de entrada debe permanecer en alto, hasta que los datos se almacenen en algn registro, ya que si se baja, se pierden totalmente los datos de entrada.

  • 16

    Posteriormente se activa, el circuito de tercer estado del bus en la lnea de escritura (1), para que los datos de entrada pasen a bucear al bus, y desde ah puedan ser jalados para almacenarse en algn registro.

    El siguiente paso, segn el programa, es almacenar los datos de entrada en la localidad de memoria M1, por lo que se debe activar el registro M1, y para que los datos no sean modificados por el estado del bus, es necesario poner un candado para que los datos almacenados permanezcan estables.

    Posteriormente, el programa dice que se tiene que introducir una nueva entrada, por lo que es necesario configurar el circuito de tercer estado en la lnea de lectura (0), y bajar el reloj del registro de entrada, posteriormente introducir los nuevos datos. Y desde ah de vuelve a realizar los mismos pasos hasta que los datos se encuentren en el bus.

    Ya que los datos se encuentren en el bus, se van almacenar en el registro A, para lo cual se activa el registro A y sin olvidar se poner se candado.

    El siguiente paso es transferir los datos del registro de localidad de memoria M1, para que sea sumado con los datos del registro A. Para lo cual, se debe configurar el circuito de tercer estado de la memoria en la lnea que controla la salida del registro de la memoria M1 (X) , para que los datos pasen del registro M1 al bus.

    Una vez en el bus, se activa el registro B para que los datos se almacenen en l y se pone su candado. Una vez que los datos se encuentren en el registro B y se pone su candado, se configura el circuito de tercer estado de la memoria y se desactiva la lnea que controla la salida de M1.

    Una vez que los datos que se sumarn se encuentren en el registro A y B, es hora de configurar a la ALU, para que realice la operacin de suma con acarreo segn su tabla de verdad, las entradas S3 a S0: HBBH, y como es una operacin aritmtica A plus B , M=B y C=H deben de estar as.

    Una vez que se realiz la suma aritmtica con acarreo A plus B, el registro de salida de la ALU F3 a F0 son la entrada del acumulador, pero para que el acumulador pase sus entradas tal y como entran a su salida tiene que tambin estar bien configurada, las entradas CL=H, S0, S=1=H, deben de estar as, y para que los datos pasen del acumulador al bus, es necesario activar su reloj con una subida y bajada.

    Los datos van al pasar del acumulador al circuito de tercer estado y para que los datos pasen al bus, se activara la lnea que controla la salida (P), para que los datos pasen a bucear al bus.

    Una vez en el bus, los datos van a ser transferidos a la salida, por lo que se activa la lnea de lectura (0) del circuito de tercer estado y tambin es activado el reloj del registro de salida, y el registro de salida, va a ser visualizado por leds.

  • 17

    Programa #2: Este programa tiene como objetivo introducir datos a la entrada, y transferir este registro de entrada a la localidad de memoria M2, despus, se vuelve a introducir un nuevo registro de entrada que debe almacenarse en la localidad de memoria M1, posteriormente una vez almacenados los datos en la memoria, se realiza la operacin lgica AND y el resultado se almacenara en el acumulador y posteriormente se transferir al registro de salida. Microoperaciones: START MOV M2, ENT Almacena la entrada en la memoria M2. MOV M1, ENT Almacena la entrada en la memoria M1. AND M1, M2 Operacin AND con los contenidos de la memoria M1 con M2 y el resultado lo guarda en el acumulador. MOV SAL, AC Transfiere el contenido del acumulador a la salida. END Proceso en el circuito:

    Lo primero que hay que hacer, antes de empezar a introducir datos, es verificar que este activada el circuito de tercer estado en la lnea de lectura (0), y que el circuito de tercer estado de la memoria se encuentren desactivadas.

    Despus se debe de introducir los datos, activando o desactivando los switch de entrada. Una vez que introducimos los datos, hay que activar el reloj del registro de entrada para que los datos pasen de este registro al circuito de tercer estado del bus. El reloj del registro de entrada debe permanecer en alto, hasta que los datos se almacenen en algn registro, ya que si se baja, se pierden totalmente los datos de entrada.

    Posteriormente se activa, el circuito de tercer estado del bus en la lnea de escritura (1), para que los datos de entrada pasen a bucear al bus, y desde ah puedan ser jalados para almacenarse en algn registro.

    El siguiente paso, segn el programa, es almacenar los datos de entrada en la localidad de memoria M2, por lo que se debe activar el registro M2, y para que los datos no sean modificados por el estado del bus, es necesario poner un candado para que los datos almacenados permanezcan estables.

    Posteriormente, se tiene que introducir una nueva entrada, por lo que es necesario configurar el circuito de tercer estado en la lnea de lectura (0), y bajar el reloj del registro de entrada, posteriormente introducir los nuevos datos. Y desde ah de vuelve a realizar los mismos pasos hasta que los datos se encuentren en el bus

  • 18

    Ya que los datos se encuentren en el bus, se van almacenar en la localidad de memoria M1, por lo que se debe activar el registro M1, y se pone su candado para que los datos almacenados permanezcan estables.

    El siguiente paso es realizar la operacin AND y para lo cual los contenidos de las localidades de memoria deben estar almacenados en el registro A y B para poder hacer la operacin AND en la ALU. Por lo que sigue es transferir los datos del registro de localidad de memoria M1 al registro A. Para lo cual, se debe configurar el circuito de tercer estado de la memoria en la lnea que controla la salida del registro de la memoria M1 (X), para que los datos pasen del registro M1 al bus.

    Una vez en el bus, se activa el registro A para que los datos se almacenen en l y se pone su candado. Una vez almacenados los datos en el registro A, se desactiva la lnea que controla la salida de M1.

    Ahora se debe de transferir los datos del registro de localidad de memoria M2 al registro B. Para lo cual, se debe configurar el circuito de tercer estado de la memoria en la lnea que controla la salida del registro de la memoria M2 (Z), para que los datos pasen del registro M2 al bus.

    Una vez en el bus, se activa el registro B para que los datos se almacenen en l y se pone su candado. Una vez que los datos se encuentren en el registro B, desactiva la lnea que controla la salida de M2.

    Una vez que los datos que se sumarn se encuentren en el registro A y B, es hora de configurar a la ALU, para que realice la operacin lgica AND, segn su tabla de verdad, las entradas S3 a S0: HBHH, y como es una operacin lgica AB, M=H deben de estar as.

    Una vez que se realiz la operacin lgica AND (AB), el registro de salida de la ALU F3 a F0 son la entrada del acumulador, pero para que el acumulador pase sus entradas tal y como entran a su salida tiene que tambin estar bien configurada, las entradas CL=H, S0, S=1=H, deben de estar as, y para que los datos pasen del acumulador al bus, es necesario activar su reloj con una subida y bajada.

    Los datos van al pasar del acumulador al circuito de tercer estado y para que los datos pasen al bus, se activara la lnea que controla la salida (P), para que los datos pasen a bucear al bus.

    Una vez en el bus, los datos van a ser transferidos a la salida, por lo que se activa la lnea de lectura (0) del circuito de tercer estado y tambin es activado el reloj del registro de salida, y el registro de salida, va a ser visualizado por leds.

  • 19

    Programa #3: Este programa tiene como objetivo introducir datos a la entrada, y transferir este registro de entrada a la localidad de memoria M1, despus, se vuelve a introducir un nuevo registro de entrada que debe almacenarse en la localidad de memoria M2, posteriormente una vez almacenados los datos en la memoria, se realiza la operacin de suma ADD y el resultado se almacenara en el acumulador y posteriormente se transferir al registro de la localidad de memoria M2. Despus se vuelve a introducir una nueva entrada de datos y se realiza una operacin de suma con el contenido del registro de la localidad de memoria M2, el resultado se almacenar en acumulador y posteriormente se transferir a la salida. Posteriormente se introducir un nuevo conjunto de datos de entrada y se multiplicar por 2 y el resultado se almacenar en el acumulador que posteriormente se transferir a la salida. Consecutivamente, se introducir una nueva entrada y se dividir entre 2 y el resultado obtenido se almacenar en el acumulador y posteriormente se transferir a la salida. Microoperaciones: START MOV M1, ENT Almacena la entrada en la memoria M2. MOV M2, ENT Almacena la entrada en la memoria M1. ADD M1, M2 Operacin de suma con los contenidos de la memoria M1 con M2 y el resultado lo guarda en el acumulador. MOV M2, AC Transfiere el contenido del acumulador a la localidad de memoria M2. ADD M2, ENT Operacin de suma con la entrada y el contenido de la localidad de memoria M2, y el resultado se almacenar en el acumulador. MOV SAL, AC Transfiere el contenido del acumulador a la salida. MUL ENT, #2 Multiplica la entrada por 2 y el resultado se almacenar en el acumulador. DIV ENT, #2 Divide la entrada entre 2 y el resultado se almacenar en el acumulador. MOV M1, AC Transfiere el contenido del acumulador a la localidad de memoria M1. MOV SAL, M1 Transfiere el contenido de la localidad de memoria M1, a la salida. END

  • 20

    Proceso en el circuito:

    Lo primero que hay que hacer, antes de empezar a introducir datos, es verificar que este activada el circuito de tercer estado en la lnea de lectura (0), y que el circuito de tercer estado de la memoria se encuentren desactivadas.

    Despus se debe de introducir los datos, activando o desactivando los switch de entrada. Una vez que introducimos los datos, hay que activar el reloj del registro de entrada para que los datos pasen de este registro al circuito de tercer estado del bus. El reloj del registro de entrada debe permanecer en alto, hasta que los datos se almacenen en algn registro, ya que si se baja, se pierden totalmente los datos de entrada.

    Posteriormente se activa, el circuito de tercer estado del bus en la lnea de escritura (1), para que los datos de entrada pasen a bucear al bus, y desde ah puedan ser jalados para almacenarse en algn registro.

    El siguiente paso, segn el programa, es almacenar los datos de entrada en la localidad de memoria M1, por lo que se debe activar el registro M1, y para que los datos no sean modificados por el estado del bus, es necesario poner un candado para que los datos almacenados permanezcan estables.

    Posteriormente, se tiene que introducir una nueva entrada, por lo que es necesario configurar el circuito de tercer estado en la lnea de lectura (0), y bajar el reloj del registro de entrada, posteriormente introducir los nuevos datos. Y desde ah de vuelve a realizar los mismos pasos hasta que los datos se encuentren en el bus.

    Ya que los datos que se encuentren en el bus, se van almacenar en la localidad de memoria M2, se debe activar el registro M2, y se pone su candado para que los datos almacenados permanezcan estables.

    El siguiente paso es realizar la operacin ADD y para lo cual los contenidos de las localidades de memoria deben estar almacenados en el registro A y B para poder hacer la operacin AND en la ALU.

    Por lo que sigue es transferir los datos del registro de localidad de memoria M1 al registro A. Para lo cual, se debe configurar el circuito de tercer estado de la memoria en la lnea que controla la salida del registro de la memoria M1 (X), para que los datos pasen del registro M1 al bus.

    Una vez en el bus, se activa el registro A para que los datos se almacenen en l y se pone su candado. Una vez almacenados los datos en el registro A, se desactiva la lnea que controla la salida de M1.

  • 21

    Ahora se debe de transferir los datos del registro de localidad de memoria M2 al registro B. Para lo cual, se debe configurar el circuito de tercer estado de la memoria en la lnea que controla la salida del registro de la memoria M2 (Z), para que los datos pasen del registro M2 al bus.

    Una vez en el bus, se activa el registro B para que los datos se almacenen en l y se pone su candado. Una vez que los datos se encuentren en el registro B, desactiva la lnea que controla la salida de M2.

    Una vez que los datos que se sumarn se encuentren en el registro A y B, es hora de configurar a la ALU, para que realice la operacin aritmtica de suma con acarreo (A plus B) segn su tabla de verdad, las entradas S3 a S0: HBBH, y como es una operacin aritmtica M=B y C=H deben de estar as.

    Una vez que se realiz la operacin aritmtica de suma con acarreo (A plus B), el registro de salida de la ALU F3 a F0 son la entrada del acumulador, pero para que el acumulador pase sus entradas tal y como entran a su salida tiene que tambin estar bien configurada, las entradas CL=H, S0, S=1=H, deben de estar as, y para que los datos pasen del acumulador al bus, es necesario activar su reloj con una subida y bajada.

    Los datos van al pasar del acumulador al circuito de tercer estado y para que los datos pasen al bus, se activara la lnea que controla la salida (P), para que los datos pasen a bucear al bus.

    Una vez en el bus, los datos van a ser transferidos a la localidad de memoria M2, pero hay que recordar que M2, ya tiene un dato almacenado, y para borrarlo y almacenar el nuevo registro de datos, es necesario bajar primero a M2 y luego su candado y posteriormente hay que activar a M2 para almacenar el nuevo registro de datos y tambin hay que subir su candado, para evitar perdida de estos datos.

    Posteriormente, el programa dice que se tiene que introducir una nueva entrada, por lo que es necesario configurar el circuito de tercer estado en la lnea de lectura (0), y bajar el reloj del registro de entrada, posteriormente introducir los nuevos datos.

    Una vez que introducimos los datos, hay que activar el reloj del registro de entrada para que los datos pasen de este registro al circuito de tercer estado del bus. El reloj del registro de entrada debe permanecer en alto, hasta que los datos se almacenen en algn registro, ya que si se baja, se pierden totalmente los datos de entrada.

    Posteriormente se activa, el circuito de tercer estado del bus en la lnea de escritura (1), para que los datos de entrada pasen a bucear al bus, y desde ah puedan ser jalados para almacenarse en algn registro.

  • 22

    Ya que los datos se encuentren en el bus, se van almacenar en el registro A, pero hay que recordar que el registro A, ya tiene un dato almacenado, y para borrarlo y almacenar el nuevo registro de datos, es necesario bajar primero A y luego su candado y posteriormente hay que activar al registro A para almacenar el nuevo registro de datos y tambin hay que subir su candado, para evitar perdida de estos datos.

    El siguiente paso es transferir los datos del registro de localidad de memoria M2, para que sea sumado con los datos del registro A. Para lo cual, se debe configurar el circuito de tercer estado de la memoria en la lnea que controla la salida del registro de la memoria M2 (Z), para que los datos pasen del registro M2 al bus.

    Una vez en el bus, se activa el registro B, pero hay que recordar que el registro B, ya tiene un dato almacenado, y para borrarlo y almacenar el nuevo registro de datos, es necesario bajar primero a B y luego su candado y posteriormente hay que activar a B para almacenar el nuevo registro de datos y tambin hay que subir su candado, para evitar perdida de estos datos. Una vez que los datos se encuentren en el registro B y se pone su candado, se configura el circuito de tercer estado de la memoria y se desactiva la lnea que controla la salida de M2.

    Una vez que los datos que se sumarn se encuentren en el registro A y B, es hora de configurar a la ALU, para que realice la operacin de suma con acarreo segn su tabla de verdad, las entradas S3 a S0: HBBH, y como es una operacin aritmtica A plus B , M=B y C=H deben de estar as.

    Una vez que se realiz la suma aritmtica con acarreo A plus B, el registro de salida de la ALU F3 a F0 son la entrada del acumulador, pero para que el acumulador pase sus entradas tal y como entran a su salida tiene que tambin estar bien configurada, las entradas CL=H, S0, S=1=H, deben de estar as, y para que los datos pasen del acumulador al bus, es necesario activar su reloj con una subida y bajada.

    Los datos van al pasar del acumulador al circuito de tercer estado y para que los datos pasen al bus, se activara la lnea que controla la salida (P), para que los datos pasen a bucear al bus.

    Una vez en el bus, los datos van a ser transferidos a la salida, por lo que se activa la lnea de lectura (0) del circuito de tercer estado y tambin es activado el reloj del registro de salida, y el registro de salida, va a ser visualizado por leds.

    Siguiendo las instrucciones del programa, nos dice que debemos de introducir una nueva entrada, por lo que es necesario configurar el circuito de tercer estado en la lnea de lectura (0), y bajar el reloj del registro de entrada, posteriormente introducir los nuevos datos.

  • 23

    Una vez que introducimos los datos, hay que activar el reloj del registro de entrada para que los datos pasen de este registro al circuito de tercer estado del bus. El reloj del registro de entrada debe permanecer en alto, hasta que los datos se almacenen en algn registro, ya que si se baja, se pierden totalmente los datos de entrada.

    Posteriormente se activa, el circuito de tercer estado del bus en la lnea de escritura (1), para que los datos de entrada pasen a bucear al bus, y desde ah puedan ser jalados para almacenarse en algn registro.

    Una vez en el bus, se activa el registro A, pero hay que recordar que el registro A, ya tiene un dato almacenado, y para borrarlo y almacenar el nuevo registro de datos, es necesario bajar primero A y luego su candado y posteriormente hay que activar A para almacenar el nuevo registro de datos y tambin hay que subir su candado, para evitar perdida de estos datos.

    Posteriormente se configura la ALU, para que los datos pasen tal y como estn en el registro A al acumulador, para hacer el desplazamiento. Para lo cual la ALU tiene que tener S3 a S0: BBBB, y como es una operacin aritmtica A, M=B y C=H deben de estar as.

    Una vez que se realiz la operacin de transferir A tal y como est, el registro de salida de la ALU F3 a F0 son la entrada del acumulador, pero para que el acumulador pase sus entradas tal y como entran a su salida tiene que tambin estar bien configurada, las entradas CL=H, S0, S=1=H, deben de estar as, y para que los datos pasen del acumulador al bus, es necesario activar su reloj con una subida y bajada.

    El programa dice que la entrada la debemos de multiplicar por 2, por lo que significa que haremos un desplazamiento a la izquierda, hasta este momento el acumulador contiene A, y para hacer el desplazamiento a la izquierda se requiere configurar el acumulador segn su tabla de verdad, las entradas CL=H, S0=H, S1=B, SR=B deben de estar as y para que el desplazamiento surja efecto se debe de activar el reloj con una subida y bajada.

    Los datos van al pasar del acumulador al circuito de tercer estado y para que los datos pasen al bus, se activara la lnea que controla la salida (P), para que los datos pasen a bucear al bus.

    Una vez en el bus, los datos van a ser transferidos a la salida, por lo que se activa la lnea de lectura (0) del circuito de tercer estado y tambin es activado el reloj del registro de salida, y el registro de salida, va a ser visualizado por leds.

    Siguiendo las instrucciones del programa, nos dice que debemos de introducir una nueva entrada, por lo que es necesario configurar el circuito de tercer estado en la lnea de lectura (0), y bajar el reloj del registro de entrada, posteriormente introducir los nuevos datos.

  • 24

    Una vez que introducimos los datos, hay que activar el reloj del registro de entrada para que los datos pasen de este registro al circuito de tercer estado del bus. El reloj del registro de entrada debe permanecer en alto, hasta que los datos se almacenen en algn registro, ya que si se baja, se pierden totalmente los datos de entrada.

    Posteriormente se activa, el circuito de tercer estado del bus en la lnea de escritura (1), para que los datos de entrada pasen a bucear al bus, y desde ah puedan ser jalados para almacenarse en algn registro.

    Una vez en el bus, se activa el registro B, pero hay que recordar que el registro B, ya tiene un dato almacenado, y para borrarlo y almacenar el nuevo registro de datos, es necesario bajar primero B y luego su candado y posteriormente hay que activar A para almacenar el nuevo registro de datos y tambin hay que subir su candado, para evitar perdida de estos datos.

    Posteriormente se configura la ALU, para que los datos pasen tal y como estn en el registro B al acumulador, para hacer el desplazamiento. Para lo cual la ALU tiene que tener S3 a S0: HBHB, y como es una operacin lgica B, M=H deben de estar as.

    Una vez que se realiz la operacin de transferir B tal y como est, el registro de salida de la ALU F3 a F0 son la entrada del acumulador, pero para que el acumulador pase sus entradas tal y como entran a su salida tiene que tambin estar bien configurada, las entradas CL=H, S0, S=1=H, deben de estar as, y para que los datos pasen del acumulador al bus, es necesario activar su reloj con una subida y bajada.

    El programa dice que la entrada la debemos de dividir entre 2, por lo que significa que haremos un desplazamiento a la derecha, hasta este momento el acumulador contiene B, y para hacer el desplazamiento a la derecha se requiere configurar el acumulador segn su tabla de verdad, las entradas CL=H, S0=B, S1=H, SL=B deben de estar as y para que el desplazamiento surja efecto se debe de activar el reloj con una subida y bajada.

    Los datos van al pasar del acumulador al circuito de tercer estado y para que los datos pasen al bus, se activara la lnea que controla la salida (P), para que los datos pasen a bucear al bus.

    Una vez en el bus, los datos van a ser transferidos a la a la localidad de memoria M1, pero hay que recordar que M1, ya tiene un dato almacenado, y para borrarlo y almacenar el nuevo registro de datos, es necesario bajar primero a M1 y luego su candado y posteriormente hay que activar a M1 para almacenar el nuevo registro de datos y tambin hay que subir su candado, para evitar perdida de estos datos.

    Siguiendo con el proceso del programa, nos dice que se debe de transferir el contenido de M1 a la salida, por lo que se debe configurar el circuito de tercer estado de la memoria en la lnea que controla la salida del registro de la memoria M1 (X), para que los datos pasen del registro M1 al bus.

  • 25

    Una vez en el bus, los datos van a ser transferidos a la salida, por lo que se activa la lnea de lectura (0) del circuito de tercer estado y tambin es activado el reloj del registro de salida, y el registro de salida, va a ser visualizado por leds.

  • 26

    Prctica # 2.- Ejecucin de Instrucciones en un microprocesador con arquitectura clsica Objetivos:

    Utilizar los recursos del Lenguaje Ensamblador de un procesador real Analizar la ejecucin de instrucciones en un procesador con

    arquitectura clsica

    Recursos de Software:

    Wordpad, TurboAssembler, TurboLinker, TurboDebugger Equipo:

    Computadora Personal compatible con IBM PC ;*************************************************************************** ; Nombre del programa: NADA.ASM ;*************************************************************************** ; COMANDO DE ENSAMBLE : Tasm NADA.asm; ; COMANDO DE ENLACE : TLink NADA; ; COMANDO DE EJECUCION : NADA [Enter] ;*************************************************************************** ; Define el modelo de memoria ; .MODEL SMALL ; Modelo de memoria .STACK ; Se necesita una PILA. .CODE ; Area de codigo Empieza: ; Etiqueta de comienzo de programa ;-------------------------------------------------------------------------- ; El programa NO HACE NADA. Al ser ejecutado simplemente regresa ; el control a MS-DOS. ;-------------------------------------------------------------------------- Mov Ax,4c00h ; Regresa a Ms-Dos por medio de la Int 21h ; funcion 4c. END Empieza ; Fin del programa

  • 27

    ;*************************************************************************** ; Nombre del programa: MENSAJE.ASM ;*************************************************************************** ; COMANDO DE ENSAMBLE : TASM MENSAJE; ; COMANDO DE ENLACE : TLINK MENSAJE; ; COMANDO DE EJECUCION : MENSAJE [Enter] ;*************************************************************************** ; ; Define el modelo de memoria ; .MODEL SMALL ; Declara Modelo de memoria .DATA ; Inicia Segmento de datos Mensaje DB 'Hola, que tal !.$' ; Define Cadena a desplegar .STACK ; Declara el Stack .CODE ; Inicia Area de codigo Empieza: ; Etiqueta de comienzo de programa mov Ax, @Data ; Inicializa DS con la mov Ds, Ax ; direccion de @Data mov Dx, Offset Mensaje ; Direccion de Mensaje mov Ah, 9 ; en Dx para poder desplegarlo Int 21h ; a traves de la Int 21 de MS-DOS. mov ax,4c00h ; Regresa a MS-DOS por medio de la int 21h ; funcion 4c. END Empieza ; Fin del programa

  • 28

    ;************************************************************************** ; Nombre del programa: HEXA.ASM ; Objetivo : Despliega el titulo del programa y los numeros ; hexadecimales correspondientes del 15 al 1 en ; forma de escalera. ;************************************************************************** ; COMANDO DE ENSAMBLE : Tasm HEXA; ; COMANDO DE ENLACE : Tlink HEXA; ; COMANDO DE EJECUCION : HEXA [Enter] ;************************************************************************** ; -------------------------------------------------------------------- ; INICIA EL PROGRAMA. SE DEFINE EL MODELO DE MEMORIA A USAR ; -------------------------------------------------------------------- .MODEL SMALL ; Modelo de memoria ; -------------------------------------------------------------------- ; INICIA SEGMENTO DE DATOS ; -------------------------------------------------------------------- .DATA ; Segmento de datos Mensaje DB 13,10,13,10 DB 'Desplegando los numeros hexadecimales del 15 al 1' DB 13,10,13,10,'$' ; Cadena a desplegar Tabla DB '0123456789ABCDEF'; Tabla de traduccion ; -------------------------------------------------------------------- ; INICIA SEGMENTO DE PILA ; -------------------------------------------------------------------- .STACK ; Se necesita una PILA. ; -------------------------------------------------------------------- ; SE DEFINE EL SEGMENTO DE CODIGO ; -------------------------------------------------------------------- .CODE ; Area de codigo Empieza: ; Etiqueta de comienzo de programa Mov Ax, @Data ; Permite el acceso a los datos inicializando Mov Ds, Ax ; el registro DS con la direccion adecuada. Mov Dx, OFFSET Mensaje ; Carga la direccion de mensaje a DX para Mov Ah, 9 ; poder desplegarlo con la funcion 9 de la Int 21h ; Int 21h (DS:DX contiene la direccion de ; la cadena que se desplegara). Mov Cx, 15 ; Contador de los numeros (van a ser 15). Mov Bx, OFFSET Tabla ; Permite acceso a la tabla de equivalencias ; hexadecimales inicializando su direccion ; y apuntando al primer elemento. Itera: ; Etiqueta controladora de las iteraciones Mov Al, Cl ; Pone en Al el numero a traducir Xlat ; (empezando desde 15) y lo traduce. Mov Dl, Al ; Prepara para desplegar el numero usando la Mov Ah, 2 ; funcion 2 de la Int 21h. Dl debe de tener Int 21h ; el caracter a ser desplegado. Mov Dl, 10 ; Salta una linea dando un efecto de Int 21h ; escalera. De nuevo se usa la funcion 2. Loop Itera ; Itera hasta llegar a 0 (de 15 a 0). El ; registro CX mantiene una cuenta activa de ; las veces que se ha iterado, y al completar

  • 29

    ; un ciclo se decrementa en uno hasta llegar ; a cero. Mov ax,4c00h ; Regresa a MS-DOS por medio de la funcion ; 4c de la interrupcion 21h. int 21h ; El codigo de regreso es 0 porque no hubo ; error. En caso de existir se podria pasar ; un cdigo diferente a 0 (ej. 4c01h). END Empieza ; Fin del programa

  • 30

    Programa #1: Este programa tiene como objetivo introducir no hacer nada, como su nombre lo indica, lo que hace realmente es simplemente regresar el control al MS-DOS. Escribiendo el programa en el editor de texto: Como primer paso a ejecutar es copiar el programa de la prctica en el editor de texto Wordpad, por lo que tenemos que abrirlo:

    Una vez abierto el editor de texto, se captura el programa nada:

    Una vez capturado el programa se guarda en la siguiente direccin: c:\tasm\bin\, asignndole un nombre, en este caso se asigna: nada con la extensin .asm, con el motivo que pueda ser reconocido por el ensamblador TurboAssembler, la extensin .asm TurboAssembler lo reconoce como el cdigo fuente.

  • 31

    Situndose en la direccin: El siguiente paso es el del ensamblado, por lo que se debe abrir el MS-DOS (smbolo del sistema):

    El entorno de trabajo del MS-DOS (smbolo del sistema) es el siguiente, lo que se ve que esa pantalla obscura causa an ms temor al usar el ensamblador, ya que entorno no es nada amigable con el usuario.

  • 32

    OBSERVACION:

    Cuando se abre el smbolo del sistema, aparece la siguiente ruta, y habr problemas, ya que la carpeta de TASM se copi en la unidad C, por lo que se soluciona el problema copiando la carpeta TASM en la direccin que especifica la ventana. El programa de nada que se elabor en Wordpad no tendr problemas, con la direccin, ya que se copi toda la carpeta que lo contena. El siguiente paso es situarnos dentro de la carpeta TASM, despus de cambiarla de direccin, por lo que ejecutamos la siguiente lnea:

    Pero resulta que dentro de la carpeta TASM, existen ms carpetas y los cdigos fuentes se encuentran dentro de la carpeta BIN, por lo que debemos incluir esta carpeta en la direccin, para lo cual ejecutamos la siguiente instruccin:

  • 33

    Verificando la escritura de nuestro cdigo fuente: Ahora ya que nos situamos en esa direccin vamos, vamos a extraer el cdigo fuente, que escribimos con extensin .asm. Para lo cual escribimos la siguiente instruccin:

    Inmediatamente se nos aparecer la siguiente ventana, donde nos muestra el archivo que creamos, y desde ah podemos hacer modificaciones, imprimirlo, etc.

    Para salir de esta ventana y regresar al MS-DOS, vamos al men Archivo y tiene una opcin de Salir.

  • 34

    Ensamblando nuestro cdigo fuente nada.asm: El siguiente paso es el ensamblado del archivo fuente con extensin .asm, es decir el archivo nada.asm, para ensamblarlo escribimos el nombre de la directiva TASM seguido del nombre del cdigo fuente con extensin .asm:

    Despus de dar enter, se desplegara un listado donde muestra el archivo ensamblado, si hay errores muestra el numero de errores, en caso existen cero errores, tambin aparece si hay peligros y algo interesante la memoria que ocupa. OBSERVACION:

    El hecho de ensamblar un cdigo fuente, significa que vamos a generar un cdigo objeto. Al ensamblar nuestro cdigo fuente nada.asm, nos dimos cuenta que se gener cdigo objeto dentro de la carpeta BIN, con el nombre el mismo nombre pero ahora con extensin .obj, es decir nada.obj.

    Abriendo el archivo nada.lst: Segn la prctica el siguiente paso es abrir el archivo nada.lst, para analizarlo, inmediatamente apareci la siguiente ventana:

  • 35

    OBSERVACION:

    Nos dimos cuenta que el ejecutar esa instruccin y al abrir el archivo nada.lst, ese archivo contena informacin general del programa, como es el numero de lneas del programa, as como las localidades de memoria que fueron son utilizadas por el programa, los operandos, nemonicos utilizados, etc.. As mismo la fecha, nombre del archivo, y hora de que creo el archivo de cdigo fuente nada.asm, tambin la versin del ensamblador, el tamao del archivo, y algo muy importante las caractersticas de los segmentos utilizados. Tambin nos dimos cuenta que si ejecutbamos la instruccin pero sin la palabra edit, y dar enter se nos abra una ventana donde nos peda seleccionar un programa de aplicacin, elegimos el Wordpad y se nos apareci la misma informacin pero en la ventana de Wordpad. Enlazando el programa nada.obj: El siguiente paso es enlazar el cdigo objeto nada.obj lo que significa que ahora generaremos un cdigo ejecutable con extensin .ese, por lo que debemos de ejecutar en enlazado con la directita TLINK, con la siguiente instruccin:

    OBSERVACION:

    En este momento se creo un programa ejecutable con el nombre de nada.exe, la extensin .ese significa un programa ejecutable, y para verificar que realmente lo haya creado, debemos de ir a la carpeta BIN y ah estar el archivo nada.exe. Ejecutando el programa nada.exe: El siguiente paso es ejecutar el programa nada.exe, por lo que escribimos la siguiente instruccin:

  • 36

    OBSERVACION:

    Al momento de dar enter, el ensamblador crea una aplicacin llamada nada. Que posteriormente va a ser el que se va a ejecutar. Ejecutando el programa de aplicacin nada: Ahora es el momento de ejecutar el programa de aplicacin, para lo cual escribimos la siguiente instruccin:

    OBSERVACION:

    Al momento de dar enter, el programa pues si cumple con su objetivo, ya que no realiza nada, solamente se llega a ver un ligero pantallaso. Pero en realidad si hace algo, toma el control y despus se lo devuelve al MS-DOS.

  • 37

    Programa #2: Este programa tiene como objetivo introducir un mensaje, para que a la hora de ejecutar la aplicacin muestre dicho mensaje en pantalla. Escribiendo el programa en el editor de texto: Realizamos los mismos pasos que en el programa anterior, por lo que tenemos que abrir el editor de texto Wordpad y escribir el programa mensaje:

    Una vez capturado el programa lo guardaremos en la direccin: c:\tasm\bin\, asignndole el nombre: mensaje con la extensin .asm, con el motivo que pueda ser reconocido como cdigo fuente por el ensamblador TurboAssembler: Abrir el smbolo del sistema: Una vez abierto el smbolo del sistema, debemos situarnos en la carpeta TASM\BIN, para lo cual escribimos las siguientes instrucciones: Verificando la escritura de nuestro cdigo fuente: Ahora ya que nos situamos en esa direccin vamos, vamos a extraer el cdigo fuente, que escribimos con extensin .asm. Para lo cual escribimos la siguiente instruccin: EDIT NADA.ASM

    Inmediatamente se nos aparecer la siguiente ventana, donde nos muestra el archivo que creamos, y desde ah podemos hacer modificaciones, imprimirlo, etc.

  • 38

    Ensamblando nuestro cdigo fuente mensaje.asm: El siguiente paso es el ensamblado del archivo fuente con extensin .asm, es decir el archivo mensaje.asm, para ensamblarlo escribimos el nombre de la directiva TASM seguido del nombre del cdigo fuente con extensin .asm:

    Despus de dar enter, se desplegara un listado donde muestra el archivo ensamblado, si hay errores muestra el numero de errores, en caso existen cero errores, tambin aparece si hay peligros y algo interesante la memoria que ocupa. OBSERVACION:

    El hecho de ensamblar un cdigo fuente, significa que vamos a generar un cdigo objeto. Al ensamblar nuestro cdigo fuente mensaje.asm, nos dimos cuenta que se gener cdigo objeto dentro de la carpeta BIN, con el nombre el mismo nombre pero ahora con extensin .obj, es decir mensaje.obj.

  • 39

    Abriendo el archivo mensaje.lst: Segn la prctica el siguiente paso es abrir el archivo mensaje.lst, para analizarlo, por lo que ejecutamos la siguiente instruccin:

    Inmediatamente apareci la siguiente ventana:

    OBSERVACION:

    Nos dimos cuenta que el ejecutar esa instruccin y al abrir el archivo mensaje.lst, ese archivo contena informacin general del programa, como es el numero de lneas del programa, as como las localidades de memoria que fueron son utilizadas por el programa. As mismo la fecha, nombre del archivo, y hora de que creo el archivo de cdigo fuente nada.asm, tambin la versin del ensamblador, el tamao del archivo, y algo muy importante las caractersticas de los segmentos utilizados.

  • 40

    Tambin nos dimos cuenta que si ejecutbamos la instruccin pero sin la palabra edit, y dar enter se nos abra una ventana donde nos peda seleccionar un programa de aplicacin, elegimos el Wordpad y se nos apareci la misma informacin pero en la ventana de Wordpad. Enlazando el programa mensaje.obj: El siguiente paso es enlazar el cdigo objeto mensaje.obj lo que significa que ahora generaremos un cdigo ejecutable con extensin .exe, por lo que debemos de ejecutar en enlazado, con la directiva TLINK, con la siguiente instruccin:

    OBSERVACION:

    En este momento se creo un programa ejecutable con el nombre de mensaje.exe, la extensin .exe significa un programa ejecutable, y para verificar que realmente lo haya creado, debemos de ir a la carpeta BIN y ah estar el archivo mensaje.exe. Ejecutando el programa mensaje.exe: El siguiente paso es ejecutar el programa mensaje.exe, por lo que escribimos la siguiente instruccin:

  • 41

    OBSERVACION:

    Al momento de dar enter, el ensamblador crea una aplicacin llamada mensaje. Y nos damos cuenta que se visualizo un mensaje, Ejecutando el programa de aplicacin mensaje: Ahora es el momento de ejecutar el programa de aplicacin, para lo cual escribimos la siguiente instruccin:

    OBSERVACION:

    Al momento de dar enter, el programa si cumple con su objetivo, ya que muestra el mensaje que escribimos en el programa.

  • 42

    Programa #3: Este programa tiene como objetivo desplegar un titulo y los nmeros hexadecimales correspondientes del 15 al 1 en forma de escalera. Escribiendo el programa en el editor de texto: Abrimos el editor de texto Wordpad y escribir el programa hexa:

    Una vez capturado el programa lo guardaremos en la direccin: c:\tasm\bin\, asignndole el nombre: mensaje con la extensin .asm, con el motivo que pueda ser reconocido como cdigo fuente por el ensamblador TurboAssembler:

  • 43

    Abrir el smbolo del sistema: Una vez abierto el smbolo del sistema, debemos situarnos en la carpeta TASM\BIN, para lo cual escribimos las siguientes instrucciones:

    Verificando la escritura de nuestro cdigo fuente: Ahora ya que nos situamos en esa direccin vamos, vamos a extraer el cdigo fuente, que escribimos con extensin .asm. Para lo cual escribimos la siguiente instruccin:

    Inmediatamente se nos aparecer la siguiente ventana, donde nos muestra el archivo que creamos, y desde ah podemos hacer modificaciones, imprimirlo, etc.

  • 44

    Ensamblando nuestro cdigo fuente hexa.asm: El siguiente paso es el ensamblado del archivo fuente con extensin .asm, es decir el archivo hexa.asm, para ensamblarlo escribimos el nombre de la directiva TASM seguido del nombre del cdigo fuente con extensin .asm:

    Despus de dar enter, se desplegara un listado donde muestra el archivo ensamblado, si hay errores muestra el numero de errores, en caso existen cero errores, tambin aparece si hay peligros y algo interesante la memoria que ocupa. OBSERVACION:

    El hecho de ensamblar un cdigo fuente, significa que vamos a generar un cdigo objeto. Al ensamblar nuestro cdigo fuente hexa.asm, nos dimos cuenta que se gener cdigo objeto dentro de la carpeta BIN, con el nombre el mismo nombre pero ahora con extensin .obj, es decir hexa.obj.

  • 45

    Abriendo el archivo hexa.lst: Segn la prctica el siguiente paso es abrir el archivo hexa.lst, para analizarlo, por lo que ejecutamos la siguiente instruccin:

    Inmediatamente apareci la siguiente ventana:

    OBSERVACION:

    Nos dimos cuenta que el ejecutar esa instruccin y al abrir el archivo hexa.lst, ese archivo contena informacin general del programa, como es el numero de lneas del programa, as como las localidades de memoria que fueron son utilizadas por el programa. As mismo la fecha, nombre del archivo, y hora de que creo el archivo de cdigo fuente nada.asm, tambin la versin del ensamblador, el tamao del archivo, y algo muy importante las caractersticas de los segmentos utilizados.

  • 46

    Tambin nos dimos cuenta que si ejecutbamos la instruccin pero sin la palabra edit, y dar enter se nos abra una ventana donde nos peda seleccionar un programa de aplicacin, elegimos el Wordpad y se nos apareci la misma informacin pero en la ventana de Wordpad. Enlazando el programa hexa.obj: El siguiente paso es enlazar el cdigo objeto hexa.obj lo que significa que ahora generaremos un cdigo ejecutable con extensin .exe, por lo que debemos de ejecutar en enlazado con la directiva TLINK, con la siguiente instruccin:

    OBSERVACION:

    En este momento se creo un programa ejecutable con el nombre de hexa.exe, la extensin .exe significa un programa ejecutable, y para verificar que realmente lo haya creado, debemos de ir a la carpeta BIN y ah estar el archivo hexa.exe. Ejecutando el programa hexa.exe: El siguiente paso es ejecutar el programa hexa.exe, por lo que escribimos la siguiente instruccin:

  • 47

    OBSERVACION:

    Al momento de dar enter, el ensamblador crea una aplicacin llamada hexa. Y nos damos cuenta que se cumpli el objetivo del programa. Ejecutando el programa de aplicacin hexa: Ahora es el momento de ejecutar el programa de aplicacin, para lo cual escribimos la siguiente instruccin:

    OBSERVACION:

    Al momento de dar enter, el programa si cumple con su objetivo, ya que muestra un titulo, y los nmeros hexadecimales en una lista escalonada.

  • 48

    Prctica # 3.- Verificacin de los elementos que integran la arquitectura de una computadora comercial utilizando software especializado

    OBJETIVO(S): Analizar el estado de los componentes que conforman una computadora

    utilizando programas de verificacin de equipos de cmputo. Verificar la ejecucin paso a paso de un programa. Observar los mensajes que muestra la ejecucin del programa.

    Recursos de Software:

    CheckIt Diagnostics . EQUIPO: Computadora porttil o de escritorio.

    DIAGRAMAS: Analizar el CPU del equipo de cmputo.

    Analizar el la memoria principal del equipo de cmputo.

  • 49

    Apariencia del programa y vista principal, con este programa realizaremos el anlisis de las computadoras pertenecientes a los integrantes d el equipo.

    Seccin de INFORMACION del sistema.

    Seccin de INFORMACION del procesador

    PRUEBA DEL PROCESADOR

    Haga clic en el botn Iniciar para comenzar la Prueba del procesador. La prueba incluye:

  • 50

    Prueba de registro general: verifica los registros generales de la CPU. Prueba de clculos matemticos: efecta funciones aritmticas, tales

    como cos, sen, exp, etc. Prueba de rendimiento matemtico: mide el rendimiento de las pruebas

    antedichas. Prueba aritmtica MMX: mide el rendimiento de las instrucciones MMX. Prueba de velocidad de la CPU: efecta operaciones de divisin de

    enteros de 16 bits y compara su rendimiento con una tabla de referencia de velocidad.

    Termino del proceso de anlisis del procesador

    Seccin de INFORMACION de la memoria

  • 51

    PRUEBA DE MEMORIA

    Haga clic en el botn Iniciar para comenzar la Prueba de memoria. La prueba incluye:

    Prueba del patrn de datos: lee y escribe la memoria con diversos patrones de datos.

    Prueba de desplazamiento de unos: verifica la memoria utilizando el algoritmo de desplazamiento de unos.

    Prueba de inversin mvil: verifica la memoria utilizando el algoritmo de desplazamiento de inversin.

    Prueba de desplazamiento de ceros: verifica la memoria utilizando el algoritmo de desplazamiento de ceros

    Prueba de copia de bloque de memoria aleatoria: verifica la memoria copiando y comparando un bloque de datos desde una posicin de origen a otra de destino, ambas aleatorias.

    Seccin de INFORMACION del audio del sistema

  • 52

    Informacin que se proporciona en la parte del audio del sistema: Informacin de controladores. Dispositivos de salida Wave. Dispositivos de entrada Wave. Dispositivos de salida MIDI. Dispositivos de entrada MIDI

    PRUEBA DE AUDIO

    La Prueba de audio prueba los archivos de audio seleccionados (wave y/o midi). Si se produce un error o no se escucha msica, puede revisar el cableado de los altavoces e ir a la pgina de informacin para ver si estn instalados los controladores de sonido correctos. Es posible que necesite hacer clic con el botn derecho del ratn en el icono de altavoz en la bandeja del sistema para que aparezca la ventana Control de volumen a fin de ajustar la salida de sonido. Si est desactivada la opcin Prueba de CD de audio, cercirese de que haya un CD de msica en el CD-ROM antes de ejecutar la prueba. Active o desactive las casillas Canal Izquierdo y Canal derecho para verificar la salida de sonido de cada uno de dichos canales. Haga clic en el botn Reproductor de CD para ejecutar el reproductor de CD de msica incluido en CheckIt Diagnostics. Reproduce automticamente la primera pista de sonido. Cuando haya terminado, cierre la ventana de Prueba de CD de audio. Seccin de PRUEBA del audio del equipo.

  • 53

    Seccin de INFORMACION del video del equipo.

    PRUEBA DE VDEO

    La prueba de vdeo reproduce archivos de vdeo (AVI y/o MPEG). Haga clic en el botn Seleccionar archivos para que aparezca la ventana Seleccionar archivos de vdeo a fin de agregar o eliminar archivos de la lista de reproduccin. En la ventana Seleccionar archivos de vdeo, haga clic en el botn Agregar para aadir un nuevo archivo de prueba. Puede agregar hasta 10 archivos de prueba. Haga clic en el botn Eliminar para borrar un archivo de prueba. Haga clic en el botn Editar para seleccionar otro archivo de prueba y reemplazar el actual. Haga clic en el botn Aceptar para confirmar los cambios, o bien en Cancelar para dejarlos sin efecto. Si se encuentra un error o no se reproduce vdeo, puede ir a la pgina de informacin y ver si estn instalados los controladores AVI y MPEG correctos. Cercirese de que los controladores de vdeo de Windows y ActiveMovie (o Direct Show) estn instalados para poder reproducir archivos AVI y MPEG. Seccin de PRUEBA del video del equipo.

  • 54

    Seccin de Prueba de video en la parte de reproducir archivo AVI

    Seccin de INFORMACION del MODEM

    PRUEBA DE MDEM

    Para comenzar la prueba de mdem, haga clic en el botn Iniciar (para cancelarla, haga clic en el botn Detener). La prueba incluye:

    Prueba de tono de marcar: detecta la conexin de la lnea telefnica.

  • 55

    Prueba de comando estndar: verifica diversos comandos AT estndar. Prueba de comandos avanzados: verifica diversos comandos

    avanzados.

    Seccin de INFORMACION de grficos del equipo

    Seccin de PRUEBA de grficos del equipo

    PRUEBA DE GRFICOS

    Haga clic en el botn Iniciar para comenzar la Prueba de grficos.

    Prueba de DirectSound: prueba si su sistema tiene la capacidad DirectSound.

    Prueba de Direct3D: prueba si su sistema tiene la capacidad Direct3D. Prueba de DirectDraw: prueba si su sistema tiene la capacidad

    DirectDraw. Prueba de deformacin de mapas de bits: prueba la funcin de

    deformacin de mapas de bits.

    Prueba de dibujo de mapas de bits: prueba la funcin de dibujo de mapas de bits.

    Prueba de dibujo con rellenos automticos: prueba la funcin de rellenos automticos.

  • 56

    Prueba de dibujo de pixeles: cambia los colores de los pixeles en la pantalla.

    Prueba de dibujo de trazos: dibuja trazos en la pantalla. Prueba de dibujo de formas rellenas: dibuja elipses, rectngulos y

    polgonos. Prueba de desplazamiento de mapas de bits: prueba la funcin de

    desplazamiento de mapas de bits. Prueba de dibujo de cadenas: prueba diversos tipos de fuentes.

    Prueba de Direct3D. Prueba de deformacin de mapa de bits.

    Prueba de dibujo de mapa de bits. Prueba de dibujo con rellenos automticos.

  • 57

    Prueba de dibujo de pxeles. Prueba de dibujo de trazos.

    Prueba de dibujo de formas rellenas. Prueba de despl. de mapas de bits.

    Seccin de INFORMACION del disco duro

  • 58

    PRUEBA DE DISCO DURO

    La Prueba de disco duro contiene dos funciones: Haga clic en el botn Iniciar para comenzar las pruebas de E/S de disco Win32 en la(s) unidad(es) de disco duro seleccionada(s). Estas pruebas utilizan las funciones de E/S de disco en modo Win32 y efectan operaciones de creacin, lectura, escritura, bsqueda y eliminacin en archivos de diversos tamaos y datos aleatorios en entornos de multiprocesamiento.

    Seccin de INFORMACION del disco extrable

    Seccin de PRUEBA del disco extrable

  • 59

    Seccin de INFORMACION del CD-ROM

    PRUEBA DE CD-ROM

    Para comenzar la prueba de CD-ROM, primero seleccione el cuadro combinado (si hay ms de una unidad), y luego haga clic en el botn Iniciar. La prueba de CD-ROM consta de cuatro elementos:

    Prueba de lectura de datos: prueba la lectura y verificacin de un archivo de prueba con un tamao superior a 5Mb en el CD-ROM.

    Prueba de velocidad de transferencia: prueba y mide la tasa de transferencia.

    Prueba de acceso Full-Stroke: prueba y mide los tiempos de acceso ms largos.

    Prueba de acceso aleatorio: prueba y mide el promedio de tiempo de acceso aleatorio.

    Seccin de PRUEBA del CD-ROM

  • 60

    Prctica # 4.- Introduccin a un sistema mnimo basado en un microcontrolador Motorola MC68HC12

    1. OBJETIVOS DE LA PRACTICA

    Objetivo General: Interconectar, verificar y probar el funcionamiento de un sistema mnimo basado en el microcontrolador 68HC912B32.

    Objetivos Particulares:

    a) Conocer una arquitectura diferente a la de Intel, en este caso Motorola. b) Identificar los elementos del sistema de desarrollo del microcontrolador de

    Motorola 68HC12 de la empresa RacoM Microelectronics llamado sis68HC912 basado en el modelo de microcontrolador MC68HC912B32.

    c) Ejecutar programas en el sistema mnimo basado en microcontrolador

    68HC912B32.

    2. REFERENCIAS

    El sistema de desarrollo que se utilizar tiene una orientacin hacia a aplicaciones dedicadas al control secuencial, control dedicado en tiempo real, proceso distribuido, adquisicin de datos y robtica, entre otros.

    Este microcontrolador MC68HC912B32, contiene memorias RAM, FLASH y

    EEPROM, Puerto paralelo con 63 lneas de entrada o salida, Puerto serie sncrono y asncrono, Temporizador de captura, comparacin, modulacin por ancho de pulso (PWM) y convertidor analgico digital A/D con 8 canales, programable de 8 o 10 bits.

    La memoria FLASH contiene 32 Kbytes, la memoria EEPROM contiene 786

    Bytes, la memoria FLASH interacta con el programa MCUez o con una terminal, por medio del puerto serie.

    La tarjeta de desarrollo puede operar en los siguientes modos:

    o Sis dbug-12, que es el modo de programacin con opciones de depuracin.

    o Modo Jump EEPROM, con programacin de la memoria EEPROM

    o Modo POD-BDM, para hacer depuracin en tiempo de ejecucin.

    o Modo Bootload, que es el modo de autoarranque al inicializar el

    microcontrolador.

  • 61

    Principales partes de la tarjeta

    La tarjeta de desarrollo SIS68HC12 esta construida basndose en el microcontrolador 68HC912B32, y las principales partes se muestran en la siguiente figura:

    Ubicacin de componentes en la tarjeta sis68HC912.

    El microcontrolador U1 es de montaje superficial y se encuentra soldado en la parte inferior, todas las terminales utilizables del microcontrolador se encuentran disponibles mediante los conectores J1, J2, J3 y J4 y se describen en la tabla y figura de localizacin de conectores y puentes

    La tarjeta se alimenta mediante una fuente externa de voltaje de corriente continua o alterna de 16 volts que se conecta en las terminales 0V, 12 del conector J10, la tarjeta tiene incorporado un regulador U6 de 5 volts para alimentar el microcontrolador y un regulador U5 para el voltaje de programacin de la memoria flash.

    El circuito de inicio "reset" lo realiza el circuito integrado U2, que es el encargado de generar la seal de inicio durante el encendido, cada vez que se presiona el botn MS1 y al detectar un bajo voltaje de alimentacin.

    Para la comunicacin con una computadora personal se tiene que conectar un cable serial DB9 del conector J9 de la tarjeta al puerto serie de la computadora. El formato de comunicacin es de 8 bits de datos, sin paridad, 1 bit de paro y velocidad de 9600 bauds, programables bajo comandos dbug-12, El circuito integrado U3 es el que convierte los niveles TTL del microcontrolador a los niveles RS-232

    Led de Prueba

    en PB0

    Fuente de

    voltaje de 12 a 16 V c.a.

    Led de

    encendido

    Led de

    Grabacin

    Interface de

    comunicacin RS485

    Interface de comunicacin

    RS232

    U1 J1

    J2 J4

    J3

    J10 U5 U6

    JP9

    U3

    U4

    JP10

    J9

    U2

    Fuente de voltaje

    de 12 a 16 v c.a.

    Interfaz de comunicacin

    RS485

    Interfaz de comunicacin

    RS485

    U1

    J1

    J2

    J3

    J4

    J10 U5 U6

    U2

    MS1

    JP9

    12V

    0V

    U3

    U4

    JP10

    J9

    D- D+

  • 62

    Si se quiere comunicar la tarjeta en formato RS485 hay que instalar el circuito integrado U4, que es un transmisor receptor RS-485, mover los puentes JP9, JP10 como se muestra en la tabla de localizacin de puentes y conectarse a las terminales D+, D- del conector J9. Con la conexin RS485 se pueden comunicar a travs de 2 hilos hasta 32 sistemas.

    3. MATERIAL Y EQUIPO

    Hardware

    1 Tarjeta de Desarrollo sis68hc912

    1 Cable serial RS-232 Macho Hembra

    1 Fuente de voltaje de corriente continua o alterna de 16 volts

    1 Computadora con puerto RS-232, 16 Mbytes de memoria como

    mnimo. Software

    1 Sistema Operativo MS-DOS 386 o superior, o Sistema Operativo Windows

    1 Compilador para Microcontrolador Motorola 68HC12 (peasm12) Programas de ejemplos (para peasm12)

    Tarjeta de desarrollo

    Sis68hc12

    Cable serial

    Fuente de voltaje

    Tarjeta

    de

    desarrollo

  • 63

    4. PROCEDIMIENTO

    Interconexin

    1. Conecte el cable serie db9 entre la tarjeta de desarrollo y la computadora personal.

    2. Conecte la fuente de poder en las terminales indicadas y verifique cuidadosamente que la polaridad es la correcta.

    Nota:

    Deber obtener como resultado la activacin del led de encendido, color VERDE, que se encuentra ubicado en la figura siguiente:

    Prueba de encendido del microcontrolador

    Verificacin

    Para verificar el correcto funcionamiento del microcontrolador en la interconexin con la computadora procederemos como a continuacin se describe:

    1. Copiar en una carpeta el contenido del archivo peasm12.zip 2. Buscar en la carpeta compilador el archivo IASM12.EXE y

    ejecutarlo 3. El siguiente paso es configurar el compilador por primera vez

    para asegurarnos de su correcto funcionamiento. i. Presionar cualquier tecla para salir de la pantalla de

    inicio.

  • 64

    ii. Presionar la tecla F10 para acceder al men general. iii. Presionar la tecla C para acceder al men de

    configuracin de puerto de comunicaciones.

    iv. Seleccionar la configuracin siguiente: 1. Comm 2 No. Puerto serial. 2. Baud 9600 Velocidad de transmisin 3. Parity N Paridad en la transmisin 4. Length 8 Amplitud de los paquetes en bits 5. Stop 1 Cuantos bits de paro

  • 65

    v. Presionar la tecla ESC dos veces para salir de los mens. vi. Presionar la tecla F7 para abrir la ventana de

    transmisin de informacin.

  • 66

    vii. Presione el botn de reset del sistema de desarrollo del microcontrolador. Si se recibe la siguiente pantalla la comunicacin se ha realizado satisfactoriamente.

  • 67

    Prueba de funcionamiento

    Ya que se ha verificado que la conexin se ha realizado satisfactoriamente se proceder a verificar el correcto funcionamiento del microcontrolador a travs de la ejecucin de un programa de prueba previamente compilado.

    1. Al trmino de la Verificacin de comunicacin entre la placa de

    desarrollo y la computadora, nos encontraremos en la ventana de comunicacin.

    2. En la placa del sistema de desarrollo active el jumper JP3 para poder

    activar el led de prueba.

  • 68

    3. Se escribir en esta ventana la instruccin Load 0, que indica la descarga del programa al microcontrolador con un desplazamiento en memoria de 0.

    4. Se presiona la tecla F6 y se indica la ubicacin completa, y el nombre

    completo del programa esta ser unidad\directorio_de_instalacin\ejemplos\peMCUEZ\ledram.sx sin comillas.

  • 69

    5. Al trmino de la descarga, debe aparecer el prompt indicando que la descarga ha sido satisfactoria.

    6. Para ejecutar el programa introduzca la instruccin g 800 sin

    comillas para indicar que se debe ejecutar el programa que se encuentra en la direccin $800 que es la direccin de memoria RAM de cdigo de datos del usuario.

  • 70

    El resultado ser el parpadeo constante del led color AMARILLO, que se encuentra ubicado en la siguiente posicin:

    Led de prueba.

    7. Para retornar a la pantalla de edicin presionar la tecla F10.

    EJEMPLO:

    Prueba con programa

    Ya que se ha visto como comprobar comunicacin con la tarjeta, transferir los programas al microcontrolador, y ejecutarlos desde la computadora en el microcontrolador, en esta ultima etapa de la prctica se aprender a cargarlos en el compilador, editarlos y compilarlos.

    Cargar un programa en el compilador.

    1. Ejecutar IASM12.EXE, presionar cualquier tecla para pasar hacia la pantalla de edicin.

  • 71

    2. Para poder cargar un programa en el editor del compilador presionar

    la tecla F3 y escribir la direccin completa, al finalizar presionar Enter y el programa ser cargado.

    3. Al cargar el programa el siguiente paso es la compilacin para

    acceder al men presionar la tecla F10 y despus la tecla A, para acceder al men de Ensamblado, las opciones son:

    a. Object .s19 Cambiar con Enter b. Listing On c. Debug On d. Cycle cntr Off e. Macros Hide

  • 72

    f. Includes View

    4. Para salir presionar ESC dos veces.

  • 73

    5. Para compilar presionar la tecla F4.

    Nota: Es importante que las libreras se encuentren en el directorio del compilador

    y no en el directorio del programa, adems de que las libreras se dejen en el lugar donde se encuentran dentro del cdigo del programa.

    6. Repita los pasos para cargar, compilar y ejecutar los programas que se

    encuentran en el directorio de ejemplos.

  • 74

    Bibliografa Abel, Peter (1996). Lenguaje Ensamblador y Programacin para PC IBM y Compatibles. Editorial Pearson Educacin. Mexico Brey, Barry (2001). Los Microprocesadores Intel. Editorial Prentice Hall. Mxico Godfrey, J. Ferry (1991). Lenguaje Ensamblador para Microcomputadoras IBM. Editorial Prentice Hall. Mxico Valvano, Jonathan (2004). Introduccin a los Sistemas de Microcomputadora Embebidos, Simulacin de Motorola 6811 y 6812. Editorial Thomson. Mxico