SlideShare una empresa de Scribd logo
1 de 74
Descargar para leer sin conexión
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
(SCC0402)

Ing. Rolando Palacios Ortega

Acapulco Gro., Octubre de 2006
Contenido

Práctica # 1.- Ejecución de Microoperaciones en una
Computadora con arquitectura clásica

4

Práctica # 2.- Ejecución de Instrucciones en
una
Computadora con arquitectura clásica

26

Práctica # 3.- Verificación de los elementos que integran la
Arquitectura de una computadora comercial
utilizando software especializado

48

Práctica # 4.- Introducción a un sistema mínimo basado
en un microcontrolador Motorola MC68HC12

60

Bibliografía

74

2
Introducción

El desarrollo acelerado de la tecnología de los sistemas electrónicos digitales
ha creado un escenario realmente impensable hace pocos años.
Las computadoras hoy en día son omnipresentes, desde principios de los años
setentas, cuando aparecen en el mercado los microprocesadores y las
microcomputadoras la evolución de los circuitos integrados no se ha detenido,
pasando por el año de 1981, cuando se comercializa la primera computadora
personal de IBM que significó un parteaguas en la historia de la computación,
ya que a partir de ese momento las computadoras estuvieron al alcance de los
hombres y mujeres que anteriormente ni siquiera imaginaban que algún día
dependerían 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 máximo todos los recursos disponibles en un sistema de
cómputo, independientemente de las tareas que se realicen en él, incluyendo
desarrollo de software de base, desarrollo de aplicaciones de software, diseño,
instalación y mantenimiento de sistemas de cómputo y muchas otras tareas.
Además, cuando parecía que todo estaba escrito, aparecen los
microcontroladores, computadoras en un circuito integrado cuyas
características los hacen adecuados para aplicaciones relativamente simples,
aunque sus recursos son muy amplios.
El presente manual incluye cuatro prácticas 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
teoría y la práctica, como entre el hardware y el software, y además faciliten el
aprendizaje significativo en el alumno, proporcionándole conocimientos y
habilidades útiles en su formación, ajustándose a los objetivos de la carrera.
Nuestro agradecimiento a los alumnos de la Generación 2004 cuyas
aportaciones han hecho posible la elaboración de este Manual de Prácticas de
Arquitectura de Computadoras.

3
Práctica # 1.- Ejecución de Microoperaciones en una
Computadora con arquitectura clásica.


Objetivos:









Material:





Diseñar el modelo de una computadora con arquitectura clásica.
Analizar el comportamiento interno de una CPU.
Evaluar el modelo a través de un conjunto de microoperaciones.

Electronics WorkBench

Equipo:



Computadora Personal compatible con IBM PC



Diagrama:



Actividades:
 Investigación documental relacionada con el tema.

 Diseñar el circuito electrónico que realice las funciones del esquema a

bloques.
 Capturar el circuito en el entorno de Electronics WorkBench.

 Verificar la realización de microoperaciones de transferencia,

aritméticas, lógicas y de desplazamiento.
 Registrar resultados y elaborar informe de la práctica.


4


Manos a la obra:
Antes de empezar es necesario analizar el diagrama a bloques del circuito
electrónico que se diseñará.
Hay que tener bien definidos ciertos puntos:
 Saber cuál 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 electrónicos serán necesarios para
armar el circuito electrónico.
 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
electrónico.
 Análisis del esquema a bloques:

De acuerdo al esquema a bloques, se identifican ciertos dispositivos necesarios
e indispensables para el armado del mismo, estos son:
 Líneas de entrada, necesarias para introducir datos, para ser procesados.

 Líneas de salida, necesarias para visualizar los datos, ya procesados.

 Unidad Aritmética Lógica (ALU), necesaria para hacer los cálculos tanto

aritméticos y lógicos 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. También 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 líneas, para evitar conflictos ó pérdida de datos, por
tal motivo, es necesario implementar en el esquema a bloques, el circuito de
tercer estado.
 El trabajar con más 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 aritméticas ó lógicas entre ellos.
Lo mismo pasa con la salida, antes de mandar los datos a la salida, tienen que
almacenarse temporalmente en un registro.

5
Ocurre un caso especial con la memoria interna del CPU, ésta esta formada
por registros, con el propósito de almacenar los datos en ellos, y además
cuenta con un circuito de tercer estado, para tener el control de las Líneas.
La memoria de antemano tiene la necesidad de utilizar por lo menos dos
Líneas:
1... Lectura.
1
1
2... Escritura.
2
2
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 Líneas con un circuito
de tercer estado.
 Diseño a borrador del circuito electrónico:

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.

 Led´s, para visualizar el recorrido que hacen el conjunto de datos.

 Las Líneas de +5V y GND.

 La Líneas 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 selección de
las ALU, el tipo de desplazamiento del acumulador, se llaman unidades de
control debido a que a partir del estado de estás, el dispositivo actúa de una
forma ú otra.
Con las líneas de control, se pueden configurar los dispositivos electrónicos del
esquema para que realice las funciones que esperamos de él. Las unidades de
control dependen del tipo de dispositivo electrónico con el que se esté
trabajando, para ello es necesario, analizar la tabla del verdad del dispositivo
electrónico con el cual se trabaja.

6
El borrador del circuito electrónico es el siguiente:

El diagrama explica de manera general el proceso para construir el circuito
electrónico.

Si se observa con detalle el diagrama, se especifica que tipo de circuito
integrado se utiliza, y la numeración que lleva consigo corresponde al pin y su
modo de conexión con los más dispositivos que forman parte del esquema a
bloques.

7
 Elaboración del circuito en Electronics WorkBench:


8
 Descripción de los dispositivos del circuito electrónico:



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
práctica, la parte de la memoria, esta constituida por este tipo de dispositivos
para el almacenamiento de los datos.
Vista del encapsulado:

Implementación en el circuito:

9
Tabla de verdad:

Funcionalidad:
La principal función de este dispositivo es poder almacenar en ellos los datos,
con la característica 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 Aritmética Lógica, que es la
encargada de realizar cualquier tipo de operaciones tanto aritméticas como
lógicas. Los datos con los cuales se realizan las operaciones, en este caso,
están almacenados en registros que tienen conexión directa con la Unidad
Aritmética Lógica.
Es importante aclarar que la Unidad Aritmética Lógica es un circuito
combinacional, es decir el estado de su salida depende estrictamente del
estado de sus entradas, además 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 más entendible y fácil
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:

10
Implementación en el circuito:

Tabla de verdad:

11
Funcionalidad:
La principal función de la Unidad Aritmética Lógica es el de realizar
operaciones tanto aritméticas ó lógicas con los contenidos de los registros.


74LS194:

Este dispositivo corresponde al acumulador, cuya implementación 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 según la configuración de la ALU.
Además, es el responsable de realizar cualquier tipo de desplazamientos
(izquierda/derecha), para las operaciones de multiplicar ó dividir entre 2.
Vista del encapsulado:

Implementación en el circuito:

12
Tabla de verdad:

Funcionalidad:
La principal función del acumulador, como su nombre lo indica, es almacenar
temporalmente un registro de datos, además 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 función que deseamos.


74LS244:

Este dispositivo corresponde al circuito de tercer estado, que es indispensable
en circuitos en donde se utilizan más de una línea, con el objetivo de activar
una línea a la vez y no existan problemas de pérdidas de datos o desvío de los
mismos, consecuentes de no administrar dichas líneas.
Este circuito es un claro ejemplo de utilizar más de una línea, debido a que el
bus utilizado en donde viajan los datos, es un “bus común”, 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 líneas de lectura o
escritura correspondiente a la acción que deseamos realizar, pero se activará
una línea a la vez, para evitar inconsistencia de datos y por ende perdida de los
mismos.

13
Vista del encapsulado:

Implementación en el circuito:

Tabla de verdad:

14
Funcionalidad:
La principal función del circuito de tercer estado es la de administrar las líneas,
en este caso las que se encuentran asociadas al bus, y a la memoria.
 Realización de las microoperaciones en el circuito:

Programa #1:
Este programa tiene como objetivo introducir datos a la entrada, hay que
aclarar que el sistema numérico empleado en este circuito electrónico 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 operación aritmética de suma con acarreo con los datos del registro de la
memoria M1, utilizando claramente la Unidad Aritmética Lógica, el resultado se
almacenara en el acumulador y posteriormente se transferirá al registro de
salida.
Microoperaciones:
START
MOV M1, ENT
ADD ENT, M1
M1
acumulador.
MOV SAL, AC
END

Almacena la entrada en la memoria M1.
Operación de suma con el contenido de la memoria
con la entrada y el resultado lo guarda en
Transfiere el contenido del acumulador a la salida.

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 línea de lectura (0),
y que el circuito de tercer estado de la memoria se encuentren desactivadas.

 Después se debe de introducir los datos, activando o desactivando los
switch de entrada, hay que recordar que el sistema numeración 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 algún registro, ya que si se baja, se pierden totalmente
los datos de entrada.

15
 Posteriormente se activa, el circuito de tercer estado del bus en la línea de
escritura (1), para que los datos de entrada pasen a bucear al bus, y desde ahí
puedan ser “jalados” para almacenarse en algún registro.

 El siguiente paso, según 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
línea 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 línea 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 línea que controla la salida de M1.

 Una vez que los datos que se sumarán se encuentren en el registro A y B,
es hora de configurar a la ALU, para que realice la operación de suma con
acarreo según su tabla de verdad, las entradas S3 a S0: HBBH, y como es una
operación aritmética A plus B , M=B y C=H deben de estar así.

 Una vez que se realizó la suma aritmética 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 también
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 línea 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 línea de lectura (0) del circuito de tercer estado y también es
activado el reloj del registro de salida, y el registro de salida, va a ser
visualizado por led’s.
16
Programa #2:
Este programa tiene como objetivo introducir datos a la entrada, y transferir
este registro de entrada a la localidad de memoria M2, después, 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 operación lógica AND y el resultado se almacenara en el
acumulador y posteriormente se transferirá al registro de salida.
Microoperaciones:
START
MOV M2, ENT
MOV M1, ENT
AND M1, M2
M1
acumulador.
MOV SAL, AC
END

Almacena la entrada en la memoria M2.
Almacena la entrada en la memoria M1.
Operación AND con los contenidos de la memoria
con M2 y el resultado lo guarda en el
Transfiere el contenido del acumulador a la salida.

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 línea de lectura (0),
y que el circuito de tercer estado de la memoria se encuentren desactivadas.

 Después 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 algún 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 línea de
escritura (1), para que los datos de entrada pasen a bucear al bus, y desde ahí
puedan ser “jalados” para almacenarse en algún registro.

 El siguiente paso, según 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 línea 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

17


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 operación 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 operación 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 línea 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 línea 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 línea 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 línea que controla la salida de M2.

 Una vez que los datos que se sumarán se encuentren en el registro A y B,
es hora de configurar a la ALU, para que realice la operación lógica AND,
según su tabla de verdad, las entradas S3 a S0: HBHH, y como es una
operación lógica AB, M=H deben de estar así.

 Una vez que se realizó la operación lógica 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 también 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 línea 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 línea de lectura (0) del circuito de tercer estado y también es
activado el reloj del registro de salida, y el registro de salida, va a ser
visualizado por led’s.

18
Programa #3:
Este programa tiene como objetivo introducir datos a la entrada, y transferir
este registro de entrada a la localidad de memoria M1, después, 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 operación de suma ADD y el resultado se almacenara en el
acumulador y posteriormente se transferirá al registro de la localidad de
memoria M2.
Después se vuelve a introducir una nueva entrada de datos y se realiza una
operación 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
MOV M2, ENT
ADD M1, M2
MOV M2, AC
ADD M2, ENT

MOV SAL, AC
MUL ENT, #2
DIV ENT, #2
MOV M1, AC
MOV SAL, M1

Almacena la entrada en la memoria M2.
Almacena la entrada en la memoria M1.
Operación de suma con los contenidos de la memoria
M1 con M2 y el resultado lo guarda en el acumulador.
Transfiere el contenido del acumulador a la localidad de
memoria M2.
Operación de suma con la entrada y el contenido de la
localidad de memoria M2, y el resultado se almacenará
en el acumulador.
Transfiere el contenido del acumulador a la salida.
Multiplica la entrada por 2 y el resultado se almacenará
en el acumulador.
Divide la entrada entre 2 y el resultado se almacenará
en el acumulador.
Transfiere el contenido del acumulador a la localidad de
memoria M1.
Transfiere el contenido de la localidad de memoria M1,
a la salida.

END

19
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 línea de lectura (0),
y que el circuito de tercer estado de la memoria se encuentren desactivadas.

 Después 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 algún 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 línea de
escritura (1), para que los datos de entrada pasen a bucear al bus, y desde ahí
puedan ser “jalados” para almacenarse en algún registro.

 El siguiente paso, según 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 línea 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 operación 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 operación 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 línea 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 línea que controla la salida de M1.

20
 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 línea 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 línea que controla la salida de M2.

 Una vez que los datos que se sumarán se encuentren en el registro A y B,
es hora de configurar a la ALU, para que realice la operación aritmética de
suma con acarreo (A plus B) según su tabla de verdad, las entradas S3 a S0:
HBBH, y como es una operación aritmética M=B y C=H deben de estar así.

 Una vez que se realizó la operación aritmética 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 también 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 línea 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 también 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
línea 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 algún 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 línea de
escritura (1), para que los datos de entrada pasen a bucear al bus, y desde ahí
puedan ser “jalados” para almacenarse en algún registro.

21


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 también 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 línea 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
también 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 línea que
controla la salida de M2.

 Una vez que los datos que se sumarán se encuentren en el registro A y B,
es hora de configurar a la ALU, para que realice la operación de suma con
acarreo según su tabla de verdad, las entradas S3 a S0: HBBH, y como es una
operación aritmética A plus B , M=B y C=H deben de estar así.

 Una vez que se realizó la suma aritmética 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 también
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 línea 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 línea de lectura (0) del circuito de tercer estado y también es
activado el reloj del registro de salida, y el registro de salida, va a ser
visualizado por led’s.

 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 línea de lectura (0), y bajar el reloj del registro de entrada,
posteriormente introducir los nuevos datos.

22
 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 algún 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 línea de
escritura (1), para que los datos de entrada pasen a bucear al bus, y desde ahí
puedan ser “jalados” para almacenarse en algún 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
también hay que subir su “candado”, para evitar perdida de estos datos.

 Posteriormente se configura la ALU, para que los datos pasen tal y como
están 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 operación
aritmética A, M=B y C=H deben de estar así.

 Una vez que se realizó la operación 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
también 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 según 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 línea 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 línea de lectura (0) del circuito de tercer estado y también es
activado el reloj del registro de salida, y el registro de salida, va a ser
visualizado por led’s.

 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 línea 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 algún 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 línea de
escritura (1), para que los datos de entrada pasen a bucear al bus, y desde ahí
puedan ser “jalados” para almacenarse en algún 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
también hay que subir su “candado”, para evitar perdida de estos datos.

 Posteriormente se configura la ALU, para que los datos pasen tal y como
están 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 operación lógica B,
M=H deben de estar así.

 Una vez que se realizó la operación 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
también 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 según 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 línea 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 también 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 línea que controla la salida del registro de la
memoria M1 (X), para que los datos pasen del registro M1 al bus.
24
 Una vez en el bus, los datos van a ser transferidos a la salida, por lo que
se activa la línea de lectura (0) del circuito de tercer estado y también es
activado el reloj del registro de salida, y el registro de salida, va a ser
visualizado por led’s.

25
Práctica # 2.- Ejecución de Instrucciones en un
microprocesador con arquitectura clásica


Objetivos:







Recursos de Software:





Utilizar los recursos del Lenguaje Ensamblador de un procesador real
Analizar la ejecución de instrucciones en un procesador con
arquitectura clásica

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
Int 21h
END Empieza

; Regresa a Ms-Dos por medio de la
; funcion 4c.
; Fin del programa

26
;***************************************************************************
; 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:
mov Ax, @Data
mov Ds, Ax
mov Dx, Offset Mensaje
mov Ah, 9
Int 21h
mov ax,4c00h
int 21h
END Empieza

; Etiqueta de comienzo de programa
; Inicializa DS con la
; direccion de @Data
; Direccion de Mensaje
; en Dx para poder desplegarlo
; a traves de la Int 21 de MS-DOS.
; Regresa a MS-DOS por medio de la
; funcion 4c.
; Fin del programa

27
;**************************************************************************
; 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:
Mov Ax, @Data
Mov Ds, Ax
Mov Dx, OFFSET Mensaje
Mov Ah, 9
Int 21h
Mov Cx, 15
Mov Bx, OFFSET Tabla

Itera:
Mov Al, Cl
Xlat
Mov Dl, Al
Mov Ah, 2
Int 21h
Mov Dl, 10
Int 21h
Loop Itera

; Etiqueta de comienzo de programa
; Permite el acceso a los datos inicializando
; el registro DS con la direccion adecuada.
; Carga la direccion de mensaje a DX para
; poder desplegarlo con la funcion 9 de la
; Int 21h (DS:DX contiene la direccion de
; la cadena que se desplegara).
; Contador de los numeros (van a ser 15).
; Permite acceso a la tabla de equivalencias
; hexadecimales inicializando su direccion
; y apuntando al primer elemento.
; Etiqueta controladora de las iteraciones
; Pone en Al el numero a traducir
; (empezando desde 15) y lo traduce.
; Prepara para desplegar el numero usando la
; funcion 2 de la Int 21h. Dl debe de tener
; el caracter a ser desplegado.
; Salta una linea dando un efecto de
; escalera. De nuevo se usa la funcion 2.
; 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

28
Mov ax,4c00h
int 21h

END Empieza

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

29
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 práctica 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 dirección:
c:tasmbin, asignándole un nombre, en este caso se asigna: ‘nada’ con la
extensión .asm, con el motivo que pueda ser reconocido por el ensamblador
TurboAssembler, la extensión .asm TurboAssembler lo reconoce como el
código fuente.
30
Situándose en la dirección:
El siguiente paso es el del ensamblado, por lo que se debe abrir el MS-DOS
(símbolo del sistema):

El entorno de trabajo del MS-DOS (símbolo del sistema) es el siguiente, lo que
se ve que esa pantalla obscura causa aún más temor al usar el ensamblador,
ya que entorno no es nada amigable con el usuario.

31
OBSERVACION:

Cuando se abre el símbolo 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 dirección que especifica
la ventana. El programa de ‘nada’ que se elaboró en Wordpad no tendrá
problemas, con la dirección, ya que se copió toda la carpeta que lo contenía.
El siguiente paso es situarnos dentro de la carpeta TASM, después de
cambiarla de dirección, por lo que ejecutamos la siguiente línea:

Pero resulta que dentro de la carpeta TASM, existen más carpetas y los
códigos fuentes se encuentran dentro de la carpeta BIN, por lo que debemos
incluir esta carpeta en la dirección, para lo cual ejecutamos la siguiente
instrucción:

32
Verificando la escritura de nuestro código fuente:
Ahora ya que nos situamos en esa dirección vamos, vamos a extraer el código
fuente, que escribimos con extensión .asm. Para lo cual escribimos la siguiente
instrucción:

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 opción de Salir.

33
Ensamblando nuestro código fuente nada.asm:
El siguiente paso es el ensamblado del archivo fuente con extensión .asm, es
decir el archivo nada.asm, para ensamblarlo escribimos el nombre de la
directiva TASM seguido del nombre del código fuente con extensión .asm:

Después 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, también aparece si hay peligros y algo interesante la memoria
que ocupa.
OBSERVACION:

El hecho de ensamblar un código fuente, significa que vamos a generar un
código objeto. Al ensamblar nuestro código fuente nada.asm, nos dimos cuenta
que se generó código objeto dentro de la carpeta BIN, con el nombre el mismo
nombre pero ahora con extensión .obj, es decir nada.obj.
Abriendo el archivo nada.lst:
Según la práctica el siguiente paso es abrir el archivo nada.lst, para analizarlo,
inmediatamente apareció la siguiente ventana:

34
OBSERVACION:

Nos dimos cuenta que el ejecutar esa instrucción y al abrir el archivo nada.lst,
ese archivo contenía información general del programa, como es el numero de
líneas 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
código fuente ‘nada.asm’, también la versión del ensamblador, el tamaño del
archivo, y algo muy importante las características de los segmentos utilizados.
También nos dimos cuenta que si ejecutábamos la instrucción pero sin la
palabra edit, y dar enter se nos abría una ventana donde nos pedía seleccionar
un programa de aplicación, elegimos el Wordpad y se nos apareció la misma
información pero en la ventana de Wordpad.
Enlazando el programa nada.obj:
El siguiente paso es enlazar el código objeto nada.obj lo que significa que
ahora generaremos un código ejecutable con extensión .ese, por lo que
debemos de ejecutar en enlazado con la directita TLINK, con la siguiente
instrucción:

OBSERVACION:

En este momento se creo un programa ejecutable con el nombre de nada.exe,
la extensión .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 instrucción:

35
OBSERVACION:

Al momento de dar enter, el ensamblador crea una aplicación llamada nada.
Que posteriormente va a ser el que se va a ejecutar.

Ejecutando el programa de aplicación nada:
Ahora es el momento de ejecutar el programa de aplicación, para lo cual
escribimos la siguiente instrucción:

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 después se lo devuelve al MS-DOS.

36
Programa #2:
Este programa tiene como objetivo introducir un mensaje, para que a la hora de
ejecutar la aplicación 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 dirección: c:tasmbin,
asignándole el nombre: ‘mensaje’ con la extensión .asm, con el motivo que
pueda ser reconocido como código fuente por el ensamblador TurboAssembler:
Abrir el símbolo del sistema:
Una vez abierto el símbolo del sistema, debemos situarnos en la carpeta
TASMBIN, para lo cual escribimos las siguientes instrucciones:
Verificando la escritura de nuestro código fuente:
Ahora ya que nos situamos en esa dirección vamos, vamos a extraer el código
fuente, que escribimos con extensión .asm. Para lo cual escribimos la siguiente
instrucción:

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.

37
Ensamblando nuestro código fuente mensaje.asm:
El siguiente paso es el ensamblado del archivo fuente con extensión .asm, es
decir el archivo mensaje.asm, para ensamblarlo escribimos el nombre de la
directiva TASM seguido del nombre del código fuente con extensión .asm:

Después 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, también aparece si hay peligros y algo interesante la memoria
que ocupa.
OBSERVACION:

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

38
Abriendo el archivo mensaje.lst:
Según la práctica el siguiente paso es abrir el archivo mensaje.lst, para
analizarlo, por lo que ejecutamos la siguiente instrucción:

Inmediatamente apareció la siguiente ventana:

OBSERVACION:

Nos dimos cuenta que el ejecutar esa instrucción y al abrir el archivo
mensaje.lst, ese archivo contenía información general del programa, como es
el numero de líneas 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
código fuente ‘nada.asm’, también la versión del ensamblador, el tamaño del
archivo, y algo muy importante las características de los segmentos utilizados.

39
También nos dimos cuenta que si ejecutábamos la instrucción pero sin la
palabra edit, y dar enter se nos abría una ventana donde nos pedía seleccionar
un programa de aplicación, elegimos el Wordpad y se nos apareció la misma
información pero en la ventana de Wordpad.
Enlazando el programa mensaje.obj:
El siguiente paso es enlazar el código objeto mensaje.obj lo que significa que
ahora generaremos un código ejecutable con extensión .exe, por lo que
debemos de ejecutar en enlazado, con la directiva TLINK, con la siguiente
instrucción:

OBSERVACION:

En este momento se creo un programa ejecutable con el nombre de
mensaje.exe, la extensión .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 instrucción:

40
OBSERVACION:

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

OBSERVACION:

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

41
Programa #3:
Este programa tiene como objetivo desplegar un titulo y los números
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 dirección: c:tasmbin,
asignándole el nombre: ‘mensaje’ con la extensión .asm, con el motivo que
pueda ser reconocido como código fuente por el ensamblador TurboAssembler:

42
Abrir el símbolo del sistema:
Una vez abierto el símbolo del sistema, debemos situarnos en la carpeta
TASMBIN, para lo cual escribimos las siguientes instrucciones:

Verificando la escritura de nuestro código fuente:
Ahora ya que nos situamos en esa dirección vamos, vamos a extraer el código
fuente, que escribimos con extensión .asm. Para lo cual escribimos la siguiente
instrucción:

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

43
Ensamblando nuestro código fuente hexa.asm:
El siguiente paso es el ensamblado del archivo fuente con extensión .asm, es
decir el archivo hexa.asm, para ensamblarlo escribimos el nombre de la
directiva TASM seguido del nombre del código fuente con extensión .asm:

Después 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, también aparece si hay peligros y algo interesante la memoria
que ocupa.
OBSERVACION:

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

44
Abriendo el archivo hexa.lst:
Según la práctica el siguiente paso es abrir el archivo hexa.lst, para analizarlo,
por lo que ejecutamos la siguiente instrucción:

Inmediatamente apareció la siguiente ventana:

OBSERVACION:

Nos dimos cuenta que el ejecutar esa instrucción y al abrir el archivo hexa.lst,
ese archivo contenía información general del programa, como es el numero de
líneas 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
código fuente ‘nada.asm’, también la versión del ensamblador, el tamaño del
archivo, y algo muy importante las características de los segmentos utilizados.

45
También nos dimos cuenta que si ejecutábamos la instrucción pero sin la
palabra edit, y dar enter se nos abría una ventana donde nos pedía seleccionar
un programa de aplicación, elegimos el Wordpad y se nos apareció la misma
información pero en la ventana de Wordpad.
Enlazando el programa hexa.obj:
El siguiente paso es enlazar el código objeto hexa.obj lo que significa que
ahora generaremos un código ejecutable con extensión .exe, por lo que
debemos de ejecutar en enlazado con la directiva TLINK, con la siguiente
instrucción:

OBSERVACION:

En este momento se creo un programa ejecutable con el nombre de hexa.exe,
la extensión .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 instrucción:

46
OBSERVACION:

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

OBSERVACION:

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

47
Práctica # 3.- Verificación 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 verificación de equipos de cómputo.
Verificar la ejecución paso a paso de un programa.
Observar los mensajes que muestra la ejecución del programa.




Recursos de Software:


CheckIt Diagnostics

.

EQUIPO:


Computadora portátil o de escritorio.

DIAGRAMAS:


Analizar el CPU del equipo de cómputo.



Analizar el la memoria principal del equipo de cómputo.

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

Sección de INFORMACION del sistema.

Sección de INFORMACION del procesador

PRUEBA DEL PROCESADOR
Haga clic en el botón Iniciar para comenzar la Prueba del procesador. La
prueba incluye:

49






Prueba de registro general: verifica los registros generales de la CPU.
Prueba de cálculos matemáticos: efectúa funciones aritméticas, tales
como cos, sen, exp, etc.
Prueba de rendimiento matemático: mide el rendimiento de las pruebas
antedichas.
Prueba aritmética MMX: mide el rendimiento de las instrucciones MMX.
Prueba de velocidad de la CPU: efectúa operaciones de división de
enteros de 16 bits y compara su rendimiento con una tabla de referencia
de velocidad.

Termino del proceso de análisis del procesador…

Sección de INFORMACION de la memoria

50
PRUEBA DE MEMORIA
Haga clic en el botón Iniciar para comenzar la Prueba de memoria. La prueba
incluye:






Prueba del patrón 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 inversión móvil: verifica la memoria utilizando el algoritmo de
desplazamiento de inversión.
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 posición de origen
a otra de destino, ambas aleatorias.

Sección de INFORMACION del audio del sistema

51
Información que se proporciona en la parte del audio del sistema:






Información 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 música, puede revisar el cableado de
los altavoces e ir a la página de información para ver si están instalados los
controladores de sonido correctos.
Es posible que necesite hacer clic con el botón derecho del ratón 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 opción Prueba de CD de audio, cerciórese de que haya
un CD de música 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 botón Reproductor de CD para ejecutar el reproductor de CD
de música incluido en CheckIt Diagnostics. Reproduce automáticamente la
primera pista de sonido. Cuando haya terminado, cierre la ventana de Prueba
de CD de audio.

Sección de PRUEBA del audio del equipo.

52
Sección de INFORMACION del video del equipo.

PRUEBA DE VÍDEO
La prueba de vídeo reproduce archivos de vídeo (AVI y/o MPEG). Haga clic en
el botón Seleccionar archivos para que aparezca la ventana Seleccionar
archivos de vídeo a fin de agregar o eliminar archivos de la lista de
reproducción.
En la ventana Seleccionar archivos de vídeo, haga clic en el botón Agregar
para añadir un nuevo archivo de prueba. Puede agregar hasta 10 archivos de
prueba. Haga clic en el botón Eliminar para borrar un archivo de prueba.
Haga clic en el botón Editar para seleccionar otro archivo de prueba y
reemplazar el actual. Haga clic en el botón Aceptar para confirmar los
cambios,
o
bien
en
Cancelar
para
dejarlos
sin
efecto.
Si se encuentra un error o no se reproduce vídeo, puede ir a la página de
información y ver si están instalados los controladores AVI y MPEG correctos.
Cerciórese de que los controladores de vídeo de Windows y ActiveMovie (o
Direct Show) estén instalados para poder reproducir archivos AVI y MPEG.

Sección de PRUEBA del video del equipo.

53
Sección de Prueba de video en la parte de reproducir archivo AVI

Sección de INFORMACION del MODEM

PRUEBA DE MÓDEM
Para comenzar la prueba de módem, haga clic en el botón Iniciar (para
cancelarla, haga clic en el botón Detener).

La prueba incluye:


Prueba de tono de marcar: detecta la conexión de la línea telefónica.

54



Prueba de comando estándar: verifica diversos comandos AT estándar.
Prueba de comandos avanzados: verifica diversos comandos
avanzados.

Sección de INFORMACION de gráficos del equipo

Sección de PRUEBA de gráficos del equipo

PRUEBA DE GRÁFICOS
Haga clic en el botón Iniciar para comenzar la Prueba de gráficos.








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 deformación de mapas de bits: prueba la función de
deformación de mapas de bits.

Prueba de dibujo de mapas de bits: prueba la función de dibujo de
mapas de bits.
Prueba de dibujo con rellenos automáticos: prueba la función de
rellenos automáticos.
55






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, rectángulos y
polígonos.
Prueba de desplazamiento de mapas de bits: prueba la función de
desplazamiento de mapas de bits.
Prueba de dibujo de cadenas: prueba diversos tipos de fuentes.

Prueba de Direct3D.

Prueba de deformación de mapa de bits.

Prueba de dibujo de mapa de bits. Prueba de dibujo con rellenos automáticos.

56
Prueba de dibujo de píxeles.

Prueba de dibujo de trazos.

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

Sección de INFORMACION del disco duro

57
PRUEBA DE DISCO DURO
La Prueba de disco duro contiene dos funciones:
Haga clic en el botón 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 efectúan
operaciones de creación, lectura, escritura, búsqueda y eliminación en archivos
de diversos tamaños y datos aleatorios en entornos de multiprocesamiento.

Sección de INFORMACION del disco extraíble

Sección de PRUEBA del disco extraíble

58
Sección de INFORMACION del CD-ROM

PRUEBA DE CD-ROM
Para comenzar la prueba de CD-ROM, primero seleccione el cuadro
combinado (si hay más de una unidad), y luego haga clic en el botón Iniciar.
La prueba de CD-ROM consta de cuatro elementos:





Prueba de lectura de datos: prueba la lectura y verificación de un archivo
de prueba con un tamaño 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
más largos.
Prueba de acceso aleatorio: prueba y mide el promedio de tiempo de
acceso aleatorio.

Sección de PRUEBA del CD-ROM

59
Práctica # 4.- Introducción a un sistema mínimo basado
en un microcontrolador Motorola MC68HC12

1.

OBJETIVOS DE LA PRACTICA

Objetivo General:
Interconectar, verificar y probar el funcionamiento de un sistema mínimo
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 mínimo basado en microcontrolador
68HC912B32.
2.

REFERENCIAS

El sistema de desarrollo que se utilizará tiene una orientación hacia a
aplicaciones dedicadas al control secuencial, control dedicado en tiempo real,
proceso distribuido, adquisición de datos y robótica, entre otros.
Este microcontrolador MC68HC912B32, contiene memorias RAM, FLASH y
EEPROM, Puerto paralelo con 63 líneas de entrada o salida, Puerto serie
síncrono y asíncrono, Temporizador de captura, comparación, modulación por
ancho de pulso (PWM) y convertidor analógico 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 interactúa 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 programación con opciones de
depuración.

o

Modo Jump EEPROM, con programación de la memoria EEPROM

o

Modo POD-BDM, para hacer depuración en tiempo de ejecución.

o

Modo Bootload, que es el modo de autoarranque al inicializar el
microcontrolador.

60
Principales partes de la tarjeta

La tarjeta de desarrollo SIS68HC12 esta construida basándose en el
microcontrolador 68HC912B32, y las principales partes se muestran en la
siguiente figura:
Fuente de voltaje
de 12 a 16 v c.a.

Led de
Grabación
J10

Led de
encendido

U5

U6

12V
0V
DD+

Led de Prueba

en PB0

Interfaz de
comunicación
RS485

J4
U4
JP9
J9

Interfaz de
comunicación
RS485

J1

JP10

U1

J2

J3

U3

MS1

U2
Ubicación 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 localización 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 programación
de la memoria flash.
El circuito de inicio "reset" lo realiza el circuito integrado U2, que es el
encargado de generar la señal de inicio durante el encendido, cada vez que se
presiona el botón MS1 y al detectar un bajo voltaje de alimentación.
Para la comunicación 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 comunicación 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

61
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 localización de puentes y conectarse
a las terminales D+, D- del conector J9. Con la conexión RS485 se pueden
comunicar a través de 2 hilos hasta 32 sistemas.
3.

MATERIAL Y EQUIPO

Hardware
1

Tarjeta de Desarrollo sis68hc912

Tarjeta
de
desarrollo

1

Cable serial RS-232 Macho – Hembra

Cable serial

1

Fuente de voltaje de corriente continua o alterna de 16 volts

Fuente de voltaje

1

Computadora con puerto RS-232, 16 Mbytes de memoria como
mínimo.

Software
1
1

Sistema Operativo MS-DOS 386 o superior, o Sistema Operativo
Windows
Compilador para Microcontrolador Motorola 68HC12 (peasm12)
Programas de ejemplos (para peasm12)

62
4.

PROCEDIMIENTO

Interconexión

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 activación del led de encendido, color
VERDE, que se encuentra ubicado en la figura siguiente:

Prueba de encendido del microcontrolador
Verificación

Para verificar el correcto funcionamiento del microcontrolador en la
interconexión con la computadora procederemos como a continuación 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.

63
ii.
Presionar la tecla F10 para acceder al menú general.
iii.
Presionar la tecla C para acceder al menú de
configuración de puerto de comunicaciones.

iv.
1.
2.
3.
4.
5.

Seleccionar la configuración siguiente:
Comm
2
No. Puerto serial.
Baud
9600 Velocidad de transmisión
Parity
N
Paridad en la transmisión
Length
8
Amplitud de los paquetes en bits
Stop
1
Cuantos bits de paro

64
v.
Presionar la tecla ESC dos veces para salir de los
menús.
vi.
Presionar la tecla F7 para abrir la ventana de
transmisión de información.

65
vii.
Presione el botón de reset del sistema de desarrollo
del microcontrolador. Si se recibe la siguiente pantalla la
comunicación se ha realizado satisfactoriamente.

66
Prueba de funcionamiento

Ya que se ha verificado que la conexión se ha realizado satisfactoriamente
se procederá a verificar el correcto funcionamiento del microcontrolador a través
de la ejecución de un programa de prueba previamente compilado.
1. Al término de la Verificación de comunicación entre la placa de
desarrollo y la computadora, nos encontraremos en la ventana de
comunicación.

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

67
3. Se escribirá en esta ventana la instrucción 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 ubicación completa, y el nombre
completo
del
programa
esta
será
“unidaddirectorio_de_instalaciónejemplospeMCUEZledram.sx”
sin
comillas.

68
5. Al término de la descarga, debe aparecer el prompt indicando que la
descarga ha sido satisfactoria.

6. Para ejecutar el programa introduzca la instrucción “g 800” sin
comillas para indicar que se debe ejecutar el programa que se encuentra en
la dirección $800 que es la dirección de memoria RAM de código de datos
del usuario.

69
El resultado será el parpadeo constante del led color AMARILLO, que se encuentra
ubicado en la siguiente posición:

Led de prueba.
7.

Para retornar a la pantalla de edición presionar la tecla F10.

EJEMPLO:
Prueba con programa

Ya que se ha visto como comprobar comunicación con la tarjeta, transferir
los programas al microcontrolador, y ejecutarlos desde la computadora en el
microcontrolador, en esta ultima etapa de la práctica 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 edición.

70
2. Para poder cargar un programa en el editor del compilador presionar
la tecla F3 y escribir la dirección completa, al finalizar presionar “Enter” y el
programa será cargado.

3. Al cargar el programa el siguiente paso es la compilación para
acceder al menú presionar la tecla F10 y después 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
“

71
f.

Includes

View

“

4. Para salir presionar ESC dos veces.

72
5. Para compilar presionar la tecla F4.

Nota:
Es importante que las librerías se encuentren en el directorio del compilador
y no en el directorio del programa, además de que las librerías se dejen en el
lugar donde se encuentran dentro del código del programa.
6. Repita los pasos para cargar, compilar y ejecutar los programas que se
encuentran en el directorio de ejemplos.

73
Bibliografía

Abel, Peter (1996). Lenguaje Ensamblador y Programación para PC IBM y
Compatibles. Editorial Pearson Educación. Mexico
Brey, Barry (2001). Los Microprocesadores Intel. Editorial Prentice Hall. México
Godfrey, J. Ferry (1991). Lenguaje Ensamblador para Microcomputadoras IBM.
Editorial Prentice Hall. México
Valvano, Jonathan (2004). Introducción a los Sistemas de Microcomputadora
Embebidos, Simulación de Motorola 6811 y 6812. Editorial Thomson. México

74

Más contenido relacionado

La actualidad más candente

Componentes del computador
Componentes del computadorComponentes del computador
Componentes del computadorSofylutqm
 
3.2 manejadores de bases de datos
3.2 manejadores de bases de datos3.2 manejadores de bases de datos
3.2 manejadores de bases de datosisraelmillan8
 
ESPRESIONES REGULARES
ESPRESIONES REGULARESESPRESIONES REGULARES
ESPRESIONES REGULARESAnel Sosa
 
Organización y estructura interna del cpu
Organización y estructura interna del cpuOrganización y estructura interna del cpu
Organización y estructura interna del cpuIsaí Beto Matz Mijes
 
Parte 4 Máquinas De Turing
Parte 4  Máquinas De  TuringParte 4  Máquinas De  Turing
Parte 4 Máquinas De TuringRicardo Quintero
 
Unidad 6 Protección y seguridad.
Unidad 6 Protección y seguridad.Unidad 6 Protección y seguridad.
Unidad 6 Protección y seguridad.Juan Anaya
 
Arquitectura de Von Neumann
Arquitectura de Von NeumannArquitectura de Von Neumann
Arquitectura de Von Neumannvictor medra
 
Optimizacion de la busqueda de discos
Optimizacion de la busqueda de discosOptimizacion de la busqueda de discos
Optimizacion de la busqueda de discosJazmín Limón
 
Jose luisroisic6a 20042015
Jose luisroisic6a 20042015Jose luisroisic6a 20042015
Jose luisroisic6a 20042015JLuis Reyes Olea
 
CARACTERISTICAS DE LA ALU Y LA UC
CARACTERISTICAS DE LA ALU Y LA UCCARACTERISTICAS DE LA ALU Y LA UC
CARACTERISTICAS DE LA ALU Y LA UCltguevara
 
TIPOS DE LENGUAJES ENSAMBLADOR Y CLASIFICACION DE MEMORIAS
TIPOS DE LENGUAJES ENSAMBLADOR Y CLASIFICACION DE MEMORIAS TIPOS DE LENGUAJES ENSAMBLADOR Y CLASIFICACION DE MEMORIAS
TIPOS DE LENGUAJES ENSAMBLADOR Y CLASIFICACION DE MEMORIAS Guillermo Iván Prisco Pérez
 
Pasos para la construcción de una máquina de turing
Pasos para la construcción de una máquina de turingPasos para la construcción de una máquina de turing
Pasos para la construcción de una máquina de turingJonathan Bastidas
 
Diagrama de actividades
Diagrama de actividadesDiagrama de actividades
Diagrama de actividadesGracielaPinedo
 
3.3 Ambientes de servicios: negocios, Industria, comercio electrónico.
3.3 Ambientes de servicios: negocios, Industria, comercio electrónico.3.3 Ambientes de servicios: negocios, Industria, comercio electrónico.
3.3 Ambientes de servicios: negocios, Industria, comercio electrónico.PaolanmGongor
 

La actualidad más candente (20)

UNIDAD 3 MODULARIZACIÓN
UNIDAD 3 MODULARIZACIÓNUNIDAD 3 MODULARIZACIÓN
UNIDAD 3 MODULARIZACIÓN
 
Interrupciones
InterrupcionesInterrupciones
Interrupciones
 
Componentes del computador
Componentes del computadorComponentes del computador
Componentes del computador
 
PROTOCOLO DE BLOQUEO EN 2 FASES
PROTOCOLO DE BLOQUEO EN 2 FASESPROTOCOLO DE BLOQUEO EN 2 FASES
PROTOCOLO DE BLOQUEO EN 2 FASES
 
3.2 manejadores de bases de datos
3.2 manejadores de bases de datos3.2 manejadores de bases de datos
3.2 manejadores de bases de datos
 
ESPRESIONES REGULARES
ESPRESIONES REGULARESESPRESIONES REGULARES
ESPRESIONES REGULARES
 
Organización y estructura interna del cpu
Organización y estructura interna del cpuOrganización y estructura interna del cpu
Organización y estructura interna del cpu
 
Parte 4 Máquinas De Turing
Parte 4  Máquinas De  TuringParte 4  Máquinas De  Turing
Parte 4 Máquinas De Turing
 
Unidad 6 Protección y seguridad.
Unidad 6 Protección y seguridad.Unidad 6 Protección y seguridad.
Unidad 6 Protección y seguridad.
 
Arquitectura de Von Neumann
Arquitectura de Von NeumannArquitectura de Von Neumann
Arquitectura de Von Neumann
 
Optimizacion de la busqueda de discos
Optimizacion de la busqueda de discosOptimizacion de la busqueda de discos
Optimizacion de la busqueda de discos
 
Jose luisroisic6a 20042015
Jose luisroisic6a 20042015Jose luisroisic6a 20042015
Jose luisroisic6a 20042015
 
CARACTERISTICAS DE LA ALU Y LA UC
CARACTERISTICAS DE LA ALU Y LA UCCARACTERISTICAS DE LA ALU Y LA UC
CARACTERISTICAS DE LA ALU Y LA UC
 
TIPOS DE LENGUAJES ENSAMBLADOR Y CLASIFICACION DE MEMORIAS
TIPOS DE LENGUAJES ENSAMBLADOR Y CLASIFICACION DE MEMORIAS TIPOS DE LENGUAJES ENSAMBLADOR Y CLASIFICACION DE MEMORIAS
TIPOS DE LENGUAJES ENSAMBLADOR Y CLASIFICACION DE MEMORIAS
 
Pasos para la construcción de una máquina de turing
Pasos para la construcción de una máquina de turingPasos para la construcción de una máquina de turing
Pasos para la construcción de una máquina de turing
 
Tabla de símbolos
Tabla de símbolosTabla de símbolos
Tabla de símbolos
 
Diagrama de actividades
Diagrama de actividadesDiagrama de actividades
Diagrama de actividades
 
Ciclo de instrucción
Ciclo de instrucciónCiclo de instrucción
Ciclo de instrucción
 
Traductor y su estructura
Traductor y su estructuraTraductor y su estructura
Traductor y su estructura
 
3.3 Ambientes de servicios: negocios, Industria, comercio electrónico.
3.3 Ambientes de servicios: negocios, Industria, comercio electrónico.3.3 Ambientes de servicios: negocios, Industria, comercio electrónico.
3.3 Ambientes de servicios: negocios, Industria, comercio electrónico.
 

Destacado

Informatica y computacion eabm
Informatica y computacion eabmInformatica y computacion eabm
Informatica y computacion eabm11DRSA
 
Manual de computacion imprimir kathy
Manual de computacion imprimir kathyManual de computacion imprimir kathy
Manual de computacion imprimir kathyKatherine Cangás
 
Unidad 1. introducción a la computadora y al desarrollo de software
Unidad 1. introducción a la computadora y al desarrollo de softwareUnidad 1. introducción a la computadora y al desarrollo de software
Unidad 1. introducción a la computadora y al desarrollo de softwareJean Carlo AriZara
 
Anteproyecto de Carrera Ingenieria Electronica
Anteproyecto de Carrera Ingenieria ElectronicaAnteproyecto de Carrera Ingenieria Electronica
Anteproyecto de Carrera Ingenieria ElectronicaJose Alvarado Robles
 
Arquitectura de Computadores - Laboratorios 1,2 y 3 - UNAD
Arquitectura de Computadores - Laboratorios 1,2 y 3 - UNADArquitectura de Computadores - Laboratorios 1,2 y 3 - UNAD
Arquitectura de Computadores - Laboratorios 1,2 y 3 - UNADAlex Gomez
 
Presentation bipolar stepper motor driver circuit
Presentation bipolar stepper motor driver circuitPresentation bipolar stepper motor driver circuit
Presentation bipolar stepper motor driver circuitSarah Krystelle
 
Práctica de laboratorio 1 hardware de pc
Práctica de laboratorio 1 hardware de pcPráctica de laboratorio 1 hardware de pc
Práctica de laboratorio 1 hardware de pckokitoslideshare
 
Arquitectura de los computadores
Arquitectura de los computadoresArquitectura de los computadores
Arquitectura de los computadoresfabio_14
 
ARQUITECTURA DE COMPUTADORAS
ARQUITECTURA DE COMPUTADORASARQUITECTURA DE COMPUTADORAS
ARQUITECTURA DE COMPUTADORASJimmy Osores
 
Informe matematicas
Informe matematicasInforme matematicas
Informe matematicasPilar
 
Manejo básico del computador
Manejo básico del computadorManejo básico del computador
Manejo básico del computadorVladimir Pomares
 
Crucigrama informática
Crucigrama informáticaCrucigrama informática
Crucigrama informáticamarkotl
 
Crucigrama (contestado)
Crucigrama (contestado)Crucigrama (contestado)
Crucigrama (contestado)Petite Poupée
 
Crucigrama informática
Crucigrama informáticaCrucigrama informática
Crucigrama informáticamarkotl
 
Guia de estudio para el primer examen computacion 1
Guia de estudio para  el primer  examen computacion 1Guia de estudio para  el primer  examen computacion 1
Guia de estudio para el primer examen computacion 1soniagomezmorales
 
Partes Fisicas Del Computador
Partes Fisicas Del ComputadorPartes Fisicas Del Computador
Partes Fisicas Del ComputadorYurani Barrera
 

Destacado (20)

Informatica y computacion eabm
Informatica y computacion eabmInformatica y computacion eabm
Informatica y computacion eabm
 
Manual de computacion imprimir kathy
Manual de computacion imprimir kathyManual de computacion imprimir kathy
Manual de computacion imprimir kathy
 
Unidad 1. introducción a la computadora y al desarrollo de software
Unidad 1. introducción a la computadora y al desarrollo de softwareUnidad 1. introducción a la computadora y al desarrollo de software
Unidad 1. introducción a la computadora y al desarrollo de software
 
Actividad integradora bdd
Actividad integradora bddActividad integradora bdd
Actividad integradora bdd
 
Anteproyecto de Carrera Ingenieria Electronica
Anteproyecto de Carrera Ingenieria ElectronicaAnteproyecto de Carrera Ingenieria Electronica
Anteproyecto de Carrera Ingenieria Electronica
 
Arquitectura de Computadores - Laboratorios 1,2 y 3 - UNAD
Arquitectura de Computadores - Laboratorios 1,2 y 3 - UNADArquitectura de Computadores - Laboratorios 1,2 y 3 - UNAD
Arquitectura de Computadores - Laboratorios 1,2 y 3 - UNAD
 
Presentation bipolar stepper motor driver circuit
Presentation bipolar stepper motor driver circuitPresentation bipolar stepper motor driver circuit
Presentation bipolar stepper motor driver circuit
 
Práctica de laboratorio 1 hardware de pc
Práctica de laboratorio 1 hardware de pcPráctica de laboratorio 1 hardware de pc
Práctica de laboratorio 1 hardware de pc
 
Arquitectura de los computadores
Arquitectura de los computadoresArquitectura de los computadores
Arquitectura de los computadores
 
Quinto año
Quinto añoQuinto año
Quinto año
 
ARQUITECTURA DE COMPUTADORAS
ARQUITECTURA DE COMPUTADORASARQUITECTURA DE COMPUTADORAS
ARQUITECTURA DE COMPUTADORAS
 
Computación 1ero 2015
Computación 1ero 2015Computación 1ero 2015
Computación 1ero 2015
 
CRUCIGRAMA DEL SISTEMA EXCRETOR
CRUCIGRAMA DEL SISTEMA EXCRETORCRUCIGRAMA DEL SISTEMA EXCRETOR
CRUCIGRAMA DEL SISTEMA EXCRETOR
 
Informe matematicas
Informe matematicasInforme matematicas
Informe matematicas
 
Manejo básico del computador
Manejo básico del computadorManejo básico del computador
Manejo básico del computador
 
Crucigrama informática
Crucigrama informáticaCrucigrama informática
Crucigrama informática
 
Crucigrama (contestado)
Crucigrama (contestado)Crucigrama (contestado)
Crucigrama (contestado)
 
Crucigrama informática
Crucigrama informáticaCrucigrama informática
Crucigrama informática
 
Guia de estudio para el primer examen computacion 1
Guia de estudio para  el primer  examen computacion 1Guia de estudio para  el primer  examen computacion 1
Guia de estudio para el primer examen computacion 1
 
Partes Fisicas Del Computador
Partes Fisicas Del ComputadorPartes Fisicas Del Computador
Partes Fisicas Del Computador
 

Similar a Manual de prácticas arquitectura de computadoras

2 curso de pic (saber electronica)
2 curso de pic (saber electronica)2 curso de pic (saber electronica)
2 curso de pic (saber electronica)Geovanny Ruiz
 
Microcontroladores: Curso de microcontroladores PIC para estudiantes y aficio...
Microcontroladores: Curso de microcontroladores PIC para estudiantes y aficio...Microcontroladores: Curso de microcontroladores PIC para estudiantes y aficio...
Microcontroladores: Curso de microcontroladores PIC para estudiantes y aficio...SANTIAGO PABLO ALBERTO
 
Curso de microcontrolador MCS51
Curso de microcontrolador MCS51Curso de microcontrolador MCS51
Curso de microcontrolador MCS51Rubén Loredo
 
Microprocesador y memorias 2 (1)
Microprocesador y memorias 2 (1)Microprocesador y memorias 2 (1)
Microprocesador y memorias 2 (1)maxgar16
 
UNIDAD ARITMETICA LOGICA - INFORMATICA
UNIDAD ARITMETICA LOGICA - INFORMATICAUNIDAD ARITMETICA LOGICA - INFORMATICA
UNIDAD ARITMETICA LOGICA - INFORMATICAanthonyjosebarrazaba
 
Microprocesador
MicroprocesadorMicroprocesador
Microprocesadortefadianis
 
Microprocesador y memorias 2
Microprocesador y memorias 2Microprocesador y memorias 2
Microprocesador y memorias 2BBRYANN
 
Estructura de un computador frankie ruiz (1)
Estructura de un computador frankie ruiz (1)Estructura de un computador frankie ruiz (1)
Estructura de un computador frankie ruiz (1)frankie_ruiz
 
Microprocesador y memorias
Microprocesador y memoriasMicroprocesador y memorias
Microprocesador y memoriasAzul Restrepo
 
Microprocesador (1)
Microprocesador (1)Microprocesador (1)
Microprocesador (1)valenypaom
 
Microprocesador (1)
Microprocesador (1)Microprocesador (1)
Microprocesador (1)valenypaom
 
Grupo 5
Grupo 5Grupo 5
Grupo 5mirydu
 
Informatica ii
Informatica iiInformatica ii
Informatica iiJaz-Lian
 
Informatica ii (1)
Informatica ii (1)Informatica ii (1)
Informatica ii (1)joharocio
 
Informatica grupo 5
Informatica grupo 5Informatica grupo 5
Informatica grupo 5chinish
 

Similar a Manual de prácticas arquitectura de computadoras (20)

Curso de-picnn
Curso de-picnnCurso de-picnn
Curso de-picnn
 
2 curso de pic (saber electronica)
2 curso de pic (saber electronica)2 curso de pic (saber electronica)
2 curso de pic (saber electronica)
 
Microcontroladores: Curso de microcontroladores PIC para estudiantes y aficio...
Microcontroladores: Curso de microcontroladores PIC para estudiantes y aficio...Microcontroladores: Curso de microcontroladores PIC para estudiantes y aficio...
Microcontroladores: Curso de microcontroladores PIC para estudiantes y aficio...
 
Microprocesadores
MicroprocesadoresMicroprocesadores
Microprocesadores
 
Curso de microcontrolador MCS51
Curso de microcontrolador MCS51Curso de microcontrolador MCS51
Curso de microcontrolador MCS51
 
Microprocesador y memorias 2 (1)
Microprocesador y memorias 2 (1)Microprocesador y memorias 2 (1)
Microprocesador y memorias 2 (1)
 
UNIDAD ARITMETICA LOGICA - INFORMATICA
UNIDAD ARITMETICA LOGICA - INFORMATICAUNIDAD ARITMETICA LOGICA - INFORMATICA
UNIDAD ARITMETICA LOGICA - INFORMATICA
 
Microprocesador
MicroprocesadorMicroprocesador
Microprocesador
 
Microprocesador y memorias 2
Microprocesador y memorias 2Microprocesador y memorias 2
Microprocesador y memorias 2
 
Estructura de un computador frankie ruiz (1)
Estructura de un computador frankie ruiz (1)Estructura de un computador frankie ruiz (1)
Estructura de un computador frankie ruiz (1)
 
Microprocesador y memorias
Microprocesador y memoriasMicroprocesador y memorias
Microprocesador y memorias
 
Microprocesador (1)
Microprocesador (1)Microprocesador (1)
Microprocesador (1)
 
Microprocesador (1)
Microprocesador (1)Microprocesador (1)
Microprocesador (1)
 
00 historia de los micros
00 historia de los micros00 historia de los micros
00 historia de los micros
 
Grupo 5
Grupo 5Grupo 5
Grupo 5
 
Curso de pic
Curso de picCurso de pic
Curso de pic
 
Informatica grupo # 5
Informatica grupo # 5Informatica grupo # 5
Informatica grupo # 5
 
Informatica ii
Informatica iiInformatica ii
Informatica ii
 
Informatica ii (1)
Informatica ii (1)Informatica ii (1)
Informatica ii (1)
 
Informatica grupo 5
Informatica grupo 5Informatica grupo 5
Informatica grupo 5
 

Manual de prácticas arquitectura de computadoras

  • 1. 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 (SCC0402) Ing. Rolando Palacios Ortega Acapulco Gro., Octubre de 2006
  • 2. Contenido Práctica # 1.- Ejecución de Microoperaciones en una Computadora con arquitectura clásica 4 Práctica # 2.- Ejecución de Instrucciones en una Computadora con arquitectura clásica 26 Práctica # 3.- Verificación de los elementos que integran la Arquitectura de una computadora comercial utilizando software especializado 48 Práctica # 4.- Introducción a un sistema mínimo basado en un microcontrolador Motorola MC68HC12 60 Bibliografía 74 2
  • 3. Introducción El desarrollo acelerado de la tecnología de los sistemas electrónicos digitales ha creado un escenario realmente impensable hace pocos años. Las computadoras hoy en día son omnipresentes, desde principios de los años setentas, cuando aparecen en el mercado los microprocesadores y las microcomputadoras la evolución de los circuitos integrados no se ha detenido, pasando por el año de 1981, cuando se comercializa la primera computadora personal de IBM que significó un parteaguas en la historia de la computación, ya que a partir de ese momento las computadoras estuvieron al alcance de los hombres y mujeres que anteriormente ni siquiera imaginaban que algún día dependerían 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 máximo todos los recursos disponibles en un sistema de cómputo, independientemente de las tareas que se realicen en él, incluyendo desarrollo de software de base, desarrollo de aplicaciones de software, diseño, instalación y mantenimiento de sistemas de cómputo y muchas otras tareas. Además, cuando parecía que todo estaba escrito, aparecen los microcontroladores, computadoras en un circuito integrado cuyas características los hacen adecuados para aplicaciones relativamente simples, aunque sus recursos son muy amplios. El presente manual incluye cuatro prácticas 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 teoría y la práctica, como entre el hardware y el software, y además faciliten el aprendizaje significativo en el alumno, proporcionándole conocimientos y habilidades útiles en su formación, ajustándose a los objetivos de la carrera. Nuestro agradecimiento a los alumnos de la Generación 2004 cuyas aportaciones han hecho posible la elaboración de este Manual de Prácticas de Arquitectura de Computadoras. 3
  • 4. Práctica # 1.- Ejecución de Microoperaciones en una Computadora con arquitectura clásica.  Objetivos:        Material:    Diseñar el modelo de una computadora con arquitectura clásica. Analizar el comportamiento interno de una CPU. Evaluar el modelo a través de un conjunto de microoperaciones. Electronics WorkBench Equipo:   Computadora Personal compatible con IBM PC  Diagrama:  Actividades:  Investigación documental relacionada con el tema.   Diseñar el circuito electrónico que realice las funciones del esquema a  bloques.  Capturar el circuito en el entorno de Electronics WorkBench.   Verificar la realización de microoperaciones de transferencia,  aritméticas, lógicas y de desplazamiento.  Registrar resultados y elaborar informe de la práctica.  4
  • 5.  Manos a la obra: Antes de empezar es necesario analizar el diagrama a bloques del circuito electrónico que se diseñará. Hay que tener bien definidos ciertos puntos:  Saber cuál 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 electrónicos serán necesarios para armar el circuito electrónico.  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 electrónico.  Análisis del esquema a bloques:  De acuerdo al esquema a bloques, se identifican ciertos dispositivos necesarios e indispensables para el armado del mismo, estos son:  Líneas de entrada, necesarias para introducir datos, para ser procesados.   Líneas de salida, necesarias para visualizar los datos, ya procesados.   Unidad Aritmética Lógica (ALU), necesaria para hacer los cálculos tanto  aritméticos y lógicos 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. También 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 líneas, para evitar conflictos ó pérdida de datos, por tal motivo, es necesario implementar en el esquema a bloques, el circuito de tercer estado.  El trabajar con más 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 aritméticas ó lógicas entre ellos. Lo mismo pasa con la salida, antes de mandar los datos a la salida, tienen que almacenarse temporalmente en un registro. 5
  • 6. Ocurre un caso especial con la memoria interna del CPU, ésta esta formada por registros, con el propósito de almacenar los datos en ellos, y además cuenta con un circuito de tercer estado, para tener el control de las Líneas. La memoria de antemano tiene la necesidad de utilizar por lo menos dos Líneas: 1... Lectura. 1 1 2... Escritura. 2 2 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 Líneas con un circuito de tercer estado.  Diseño a borrador del circuito electrónico:  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.   Led´s, para visualizar el recorrido que hacen el conjunto de datos.   Las Líneas de +5V y GND.   La Líneas 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 selección de las ALU, el tipo de desplazamiento del acumulador, se llaman unidades de control debido a que a partir del estado de estás, el dispositivo actúa de una forma ú otra. Con las líneas de control, se pueden configurar los dispositivos electrónicos del esquema para que realice las funciones que esperamos de él. Las unidades de control dependen del tipo de dispositivo electrónico con el que se esté trabajando, para ello es necesario, analizar la tabla del verdad del dispositivo electrónico con el cual se trabaja. 6
  • 7. El borrador del circuito electrónico es el siguiente: El diagrama explica de manera general el proceso para construir el circuito electrónico. Si se observa con detalle el diagrama, se especifica que tipo de circuito integrado se utiliza, y la numeración que lleva consigo corresponde al pin y su modo de conexión con los más dispositivos que forman parte del esquema a bloques. 7
  • 8.  Elaboración del circuito en Electronics WorkBench:  8
  • 9.  Descripción de los dispositivos del circuito electrónico:   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 práctica, la parte de la memoria, esta constituida por este tipo de dispositivos para el almacenamiento de los datos. Vista del encapsulado: Implementación en el circuito: 9
  • 10. Tabla de verdad: Funcionalidad: La principal función de este dispositivo es poder almacenar en ellos los datos, con la característica 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 Aritmética Lógica, que es la encargada de realizar cualquier tipo de operaciones tanto aritméticas como lógicas. Los datos con los cuales se realizan las operaciones, en este caso, están almacenados en registros que tienen conexión directa con la Unidad Aritmética Lógica. Es importante aclarar que la Unidad Aritmética Lógica es un circuito combinacional, es decir el estado de su salida depende estrictamente del estado de sus entradas, además 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 más entendible y fácil 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: 10
  • 11. Implementación en el circuito: Tabla de verdad: 11
  • 12. Funcionalidad: La principal función de la Unidad Aritmética Lógica es el de realizar operaciones tanto aritméticas ó lógicas con los contenidos de los registros.  74LS194: Este dispositivo corresponde al acumulador, cuya implementación 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 según la configuración de la ALU. Además, es el responsable de realizar cualquier tipo de desplazamientos (izquierda/derecha), para las operaciones de multiplicar ó dividir entre 2. Vista del encapsulado: Implementación en el circuito: 12
  • 13. Tabla de verdad: Funcionalidad: La principal función del acumulador, como su nombre lo indica, es almacenar temporalmente un registro de datos, además 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 función que deseamos.  74LS244: Este dispositivo corresponde al circuito de tercer estado, que es indispensable en circuitos en donde se utilizan más de una línea, con el objetivo de activar una línea a la vez y no existan problemas de pérdidas de datos o desvío de los mismos, consecuentes de no administrar dichas líneas. Este circuito es un claro ejemplo de utilizar más de una línea, debido a que el bus utilizado en donde viajan los datos, es un “bus común”, 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 líneas de lectura o escritura correspondiente a la acción que deseamos realizar, pero se activará una línea a la vez, para evitar inconsistencia de datos y por ende perdida de los mismos. 13
  • 14. Vista del encapsulado: Implementación en el circuito: Tabla de verdad: 14
  • 15. Funcionalidad: La principal función del circuito de tercer estado es la de administrar las líneas, en este caso las que se encuentran asociadas al bus, y a la memoria.  Realización de las microoperaciones en el circuito:  Programa #1: Este programa tiene como objetivo introducir datos a la entrada, hay que aclarar que el sistema numérico empleado en este circuito electrónico 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 operación aritmética de suma con acarreo con los datos del registro de la memoria M1, utilizando claramente la Unidad Aritmética Lógica, el resultado se almacenara en el acumulador y posteriormente se transferirá al registro de salida. Microoperaciones: START MOV M1, ENT ADD ENT, M1 M1 acumulador. MOV SAL, AC END Almacena la entrada en la memoria M1. Operación de suma con el contenido de la memoria con la entrada y el resultado lo guarda en Transfiere el contenido del acumulador a la salida. 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 línea de lectura (0), y que el circuito de tercer estado de la memoria se encuentren desactivadas.  Después se debe de introducir los datos, activando o desactivando los switch de entrada, hay que recordar que el sistema numeración 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 algún registro, ya que si se baja, se pierden totalmente los datos de entrada. 15
  • 16.  Posteriormente se activa, el circuito de tercer estado del bus en la línea de escritura (1), para que los datos de entrada pasen a bucear al bus, y desde ahí puedan ser “jalados” para almacenarse en algún registro.  El siguiente paso, según 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 línea 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 línea 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 línea que controla la salida de M1.  Una vez que los datos que se sumarán se encuentren en el registro A y B, es hora de configurar a la ALU, para que realice la operación de suma con acarreo según su tabla de verdad, las entradas S3 a S0: HBBH, y como es una operación aritmética A plus B , M=B y C=H deben de estar así.  Una vez que se realizó la suma aritmética 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 también 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 línea 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 línea de lectura (0) del circuito de tercer estado y también es activado el reloj del registro de salida, y el registro de salida, va a ser visualizado por led’s. 16
  • 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, después, 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 operación lógica AND y el resultado se almacenara en el acumulador y posteriormente se transferirá al registro de salida. Microoperaciones: START MOV M2, ENT MOV M1, ENT AND M1, M2 M1 acumulador. MOV SAL, AC END Almacena la entrada en la memoria M2. Almacena la entrada en la memoria M1. Operación AND con los contenidos de la memoria con M2 y el resultado lo guarda en el Transfiere el contenido del acumulador a la salida. 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 línea de lectura (0), y que el circuito de tercer estado de la memoria se encuentren desactivadas.  Después 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 algún 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 línea de escritura (1), para que los datos de entrada pasen a bucear al bus, y desde ahí puedan ser “jalados” para almacenarse en algún registro.  El siguiente paso, según 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 línea 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 17
  • 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 operación 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 operación 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 línea 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 línea 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 línea 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 línea que controla la salida de M2.  Una vez que los datos que se sumarán se encuentren en el registro A y B, es hora de configurar a la ALU, para que realice la operación lógica AND, según su tabla de verdad, las entradas S3 a S0: HBHH, y como es una operación lógica AB, M=H deben de estar así.  Una vez que se realizó la operación lógica 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 también 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 línea 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 línea de lectura (0) del circuito de tercer estado y también es activado el reloj del registro de salida, y el registro de salida, va a ser visualizado por led’s. 18
  • 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, después, 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 operación de suma ADD y el resultado se almacenara en el acumulador y posteriormente se transferirá al registro de la localidad de memoria M2. Después se vuelve a introducir una nueva entrada de datos y se realiza una operación 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 MOV M2, ENT ADD M1, M2 MOV M2, AC ADD M2, ENT MOV SAL, AC MUL ENT, #2 DIV ENT, #2 MOV M1, AC MOV SAL, M1 Almacena la entrada en la memoria M2. Almacena la entrada en la memoria M1. Operación de suma con los contenidos de la memoria M1 con M2 y el resultado lo guarda en el acumulador. Transfiere el contenido del acumulador a la localidad de memoria M2. Operación de suma con la entrada y el contenido de la localidad de memoria M2, y el resultado se almacenará en el acumulador. Transfiere el contenido del acumulador a la salida. Multiplica la entrada por 2 y el resultado se almacenará en el acumulador. Divide la entrada entre 2 y el resultado se almacenará en el acumulador. Transfiere el contenido del acumulador a la localidad de memoria M1. Transfiere el contenido de la localidad de memoria M1, a la salida. END 19
  • 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 línea de lectura (0), y que el circuito de tercer estado de la memoria se encuentren desactivadas.  Después 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 algún 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 línea de escritura (1), para que los datos de entrada pasen a bucear al bus, y desde ahí puedan ser “jalados” para almacenarse en algún registro.  El siguiente paso, según 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 línea 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 operación 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 operación 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 línea 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 línea que controla la salida de M1. 20
  • 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 línea 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 línea que controla la salida de M2.  Una vez que los datos que se sumarán se encuentren en el registro A y B, es hora de configurar a la ALU, para que realice la operación aritmética de suma con acarreo (A plus B) según su tabla de verdad, las entradas S3 a S0: HBBH, y como es una operación aritmética M=B y C=H deben de estar así.  Una vez que se realizó la operación aritmética 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 también 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 línea 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 también 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 línea 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 algún 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 línea de escritura (1), para que los datos de entrada pasen a bucear al bus, y desde ahí puedan ser “jalados” para almacenarse en algún registro. 21
  • 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 también 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 línea 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 también 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 línea que controla la salida de M2.  Una vez que los datos que se sumarán se encuentren en el registro A y B, es hora de configurar a la ALU, para que realice la operación de suma con acarreo según su tabla de verdad, las entradas S3 a S0: HBBH, y como es una operación aritmética A plus B , M=B y C=H deben de estar así.  Una vez que se realizó la suma aritmética 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 también 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 línea 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 línea de lectura (0) del circuito de tercer estado y también es activado el reloj del registro de salida, y el registro de salida, va a ser visualizado por led’s.  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 línea de lectura (0), y bajar el reloj del registro de entrada, posteriormente introducir los nuevos datos. 22
  • 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 algún 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 línea de escritura (1), para que los datos de entrada pasen a bucear al bus, y desde ahí puedan ser “jalados” para almacenarse en algún 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 también hay que subir su “candado”, para evitar perdida de estos datos.  Posteriormente se configura la ALU, para que los datos pasen tal y como están 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 operación aritmética A, M=B y C=H deben de estar así.  Una vez que se realizó la operación 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 también 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 según 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 línea 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 línea de lectura (0) del circuito de tercer estado y también es activado el reloj del registro de salida, y el registro de salida, va a ser visualizado por led’s.  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 línea de lectura (0), y bajar el reloj del registro de entrada, posteriormente introducir los nuevos datos. 23
  • 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 algún 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 línea de escritura (1), para que los datos de entrada pasen a bucear al bus, y desde ahí puedan ser “jalados” para almacenarse en algún 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 también hay que subir su “candado”, para evitar perdida de estos datos.  Posteriormente se configura la ALU, para que los datos pasen tal y como están 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 operación lógica B, M=H deben de estar así.  Una vez que se realizó la operación 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 también 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 según 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 línea 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 también 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 línea que controla la salida del registro de la memoria M1 (X), para que los datos pasen del registro M1 al bus. 24
  • 25.  Una vez en el bus, los datos van a ser transferidos a la salida, por lo que se activa la línea de lectura (0) del circuito de tercer estado y también es activado el reloj del registro de salida, y el registro de salida, va a ser visualizado por led’s. 25
  • 26. Práctica # 2.- Ejecución de Instrucciones en un microprocesador con arquitectura clásica  Objetivos:      Recursos de Software:    Utilizar los recursos del Lenguaje Ensamblador de un procesador real Analizar la ejecución de instrucciones en un procesador con arquitectura clásica 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 Int 21h END Empieza ; Regresa a Ms-Dos por medio de la ; funcion 4c. ; Fin del programa 26
  • 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: mov Ax, @Data mov Ds, Ax mov Dx, Offset Mensaje mov Ah, 9 Int 21h mov ax,4c00h int 21h END Empieza ; Etiqueta de comienzo de programa ; Inicializa DS con la ; direccion de @Data ; Direccion de Mensaje ; en Dx para poder desplegarlo ; a traves de la Int 21 de MS-DOS. ; Regresa a MS-DOS por medio de la ; funcion 4c. ; Fin del programa 27
  • 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: Mov Ax, @Data Mov Ds, Ax Mov Dx, OFFSET Mensaje Mov Ah, 9 Int 21h Mov Cx, 15 Mov Bx, OFFSET Tabla Itera: Mov Al, Cl Xlat Mov Dl, Al Mov Ah, 2 Int 21h Mov Dl, 10 Int 21h Loop Itera ; Etiqueta de comienzo de programa ; Permite el acceso a los datos inicializando ; el registro DS con la direccion adecuada. ; Carga la direccion de mensaje a DX para ; poder desplegarlo con la funcion 9 de la ; Int 21h (DS:DX contiene la direccion de ; la cadena que se desplegara). ; Contador de los numeros (van a ser 15). ; Permite acceso a la tabla de equivalencias ; hexadecimales inicializando su direccion ; y apuntando al primer elemento. ; Etiqueta controladora de las iteraciones ; Pone en Al el numero a traducir ; (empezando desde 15) y lo traduce. ; Prepara para desplegar el numero usando la ; funcion 2 de la Int 21h. Dl debe de tener ; el caracter a ser desplegado. ; Salta una linea dando un efecto de ; escalera. De nuevo se usa la funcion 2. ; 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 28
  • 29. Mov ax,4c00h int 21h END Empieza ; un ciclo se decrementa en uno hasta llegar ; a cero. ; Regresa a MS-DOS por medio de la funcion ; 4c de la interrupcion 21h. ; El codigo de regreso es 0 porque no hubo ; error. En caso de existir se podria pasar ; un código diferente a 0 (ej. 4c01h). ; Fin del programa 29
  • 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 práctica 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 dirección: c:tasmbin, asignándole un nombre, en este caso se asigna: ‘nada’ con la extensión .asm, con el motivo que pueda ser reconocido por el ensamblador TurboAssembler, la extensión .asm TurboAssembler lo reconoce como el código fuente. 30
  • 31. Situándose en la dirección: El siguiente paso es el del ensamblado, por lo que se debe abrir el MS-DOS (símbolo del sistema): El entorno de trabajo del MS-DOS (símbolo del sistema) es el siguiente, lo que se ve que esa pantalla obscura causa aún más temor al usar el ensamblador, ya que entorno no es nada amigable con el usuario. 31
  • 32. OBSERVACION: Cuando se abre el símbolo 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 dirección que especifica la ventana. El programa de ‘nada’ que se elaboró en Wordpad no tendrá problemas, con la dirección, ya que se copió toda la carpeta que lo contenía. El siguiente paso es situarnos dentro de la carpeta TASM, después de cambiarla de dirección, por lo que ejecutamos la siguiente línea: Pero resulta que dentro de la carpeta TASM, existen más carpetas y los códigos fuentes se encuentran dentro de la carpeta BIN, por lo que debemos incluir esta carpeta en la dirección, para lo cual ejecutamos la siguiente instrucción: 32
  • 33. Verificando la escritura de nuestro código fuente: Ahora ya que nos situamos en esa dirección vamos, vamos a extraer el código fuente, que escribimos con extensión .asm. Para lo cual escribimos la siguiente instrucción: 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 opción de Salir. 33
  • 34. Ensamblando nuestro código fuente nada.asm: El siguiente paso es el ensamblado del archivo fuente con extensión .asm, es decir el archivo nada.asm, para ensamblarlo escribimos el nombre de la directiva TASM seguido del nombre del código fuente con extensión .asm: Después 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, también aparece si hay peligros y algo interesante la memoria que ocupa. OBSERVACION: El hecho de ensamblar un código fuente, significa que vamos a generar un código objeto. Al ensamblar nuestro código fuente nada.asm, nos dimos cuenta que se generó código objeto dentro de la carpeta BIN, con el nombre el mismo nombre pero ahora con extensión .obj, es decir nada.obj. Abriendo el archivo nada.lst: Según la práctica el siguiente paso es abrir el archivo nada.lst, para analizarlo, inmediatamente apareció la siguiente ventana: 34
  • 35. OBSERVACION: Nos dimos cuenta que el ejecutar esa instrucción y al abrir el archivo nada.lst, ese archivo contenía información general del programa, como es el numero de líneas 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 código fuente ‘nada.asm’, también la versión del ensamblador, el tamaño del archivo, y algo muy importante las características de los segmentos utilizados. También nos dimos cuenta que si ejecutábamos la instrucción pero sin la palabra edit, y dar enter se nos abría una ventana donde nos pedía seleccionar un programa de aplicación, elegimos el Wordpad y se nos apareció la misma información pero en la ventana de Wordpad. Enlazando el programa nada.obj: El siguiente paso es enlazar el código objeto nada.obj lo que significa que ahora generaremos un código ejecutable con extensión .ese, por lo que debemos de ejecutar en enlazado con la directita TLINK, con la siguiente instrucción: OBSERVACION: En este momento se creo un programa ejecutable con el nombre de nada.exe, la extensión .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 instrucción: 35
  • 36. OBSERVACION: Al momento de dar enter, el ensamblador crea una aplicación llamada nada. Que posteriormente va a ser el que se va a ejecutar. Ejecutando el programa de aplicación nada: Ahora es el momento de ejecutar el programa de aplicación, para lo cual escribimos la siguiente instrucción: 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 después se lo devuelve al MS-DOS. 36
  • 37. Programa #2: Este programa tiene como objetivo introducir un mensaje, para que a la hora de ejecutar la aplicación 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 dirección: c:tasmbin, asignándole el nombre: ‘mensaje’ con la extensión .asm, con el motivo que pueda ser reconocido como código fuente por el ensamblador TurboAssembler: Abrir el símbolo del sistema: Una vez abierto el símbolo del sistema, debemos situarnos en la carpeta TASMBIN, para lo cual escribimos las siguientes instrucciones: Verificando la escritura de nuestro código fuente: Ahora ya que nos situamos en esa dirección vamos, vamos a extraer el código fuente, que escribimos con extensión .asm. Para lo cual escribimos la siguiente instrucción: 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. 37
  • 38. Ensamblando nuestro código fuente mensaje.asm: El siguiente paso es el ensamblado del archivo fuente con extensión .asm, es decir el archivo mensaje.asm, para ensamblarlo escribimos el nombre de la directiva TASM seguido del nombre del código fuente con extensión .asm: Después 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, también aparece si hay peligros y algo interesante la memoria que ocupa. OBSERVACION: El hecho de ensamblar un código fuente, significa que vamos a generar un código objeto. Al ensamblar nuestro código fuente mensaje.asm, nos dimos cuenta que se generó código objeto dentro de la carpeta BIN, con el nombre el mismo nombre pero ahora con extensión .obj, es decir mensaje.obj. 38
  • 39. Abriendo el archivo mensaje.lst: Según la práctica el siguiente paso es abrir el archivo mensaje.lst, para analizarlo, por lo que ejecutamos la siguiente instrucción: Inmediatamente apareció la siguiente ventana: OBSERVACION: Nos dimos cuenta que el ejecutar esa instrucción y al abrir el archivo mensaje.lst, ese archivo contenía información general del programa, como es el numero de líneas 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 código fuente ‘nada.asm’, también la versión del ensamblador, el tamaño del archivo, y algo muy importante las características de los segmentos utilizados. 39
  • 40. También nos dimos cuenta que si ejecutábamos la instrucción pero sin la palabra edit, y dar enter se nos abría una ventana donde nos pedía seleccionar un programa de aplicación, elegimos el Wordpad y se nos apareció la misma información pero en la ventana de Wordpad. Enlazando el programa mensaje.obj: El siguiente paso es enlazar el código objeto mensaje.obj lo que significa que ahora generaremos un código ejecutable con extensión .exe, por lo que debemos de ejecutar en enlazado, con la directiva TLINK, con la siguiente instrucción: OBSERVACION: En este momento se creo un programa ejecutable con el nombre de mensaje.exe, la extensión .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 instrucción: 40
  • 41. OBSERVACION: Al momento de dar enter, el ensamblador crea una aplicación llamada mensaje. Y nos damos cuenta que se visualizo un mensaje, Ejecutando el programa de aplicación mensaje: Ahora es el momento de ejecutar el programa de aplicación, para lo cual escribimos la siguiente instrucción: OBSERVACION: Al momento de dar enter, el programa si cumple con su objetivo, ya que muestra el mensaje que escribimos en el programa. 41
  • 42. Programa #3: Este programa tiene como objetivo desplegar un titulo y los números 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 dirección: c:tasmbin, asignándole el nombre: ‘mensaje’ con la extensión .asm, con el motivo que pueda ser reconocido como código fuente por el ensamblador TurboAssembler: 42
  • 43. Abrir el símbolo del sistema: Una vez abierto el símbolo del sistema, debemos situarnos en la carpeta TASMBIN, para lo cual escribimos las siguientes instrucciones: Verificando la escritura de nuestro código fuente: Ahora ya que nos situamos en esa dirección vamos, vamos a extraer el código fuente, que escribimos con extensión .asm. Para lo cual escribimos la siguiente instrucción: Inmediatamente se nos aparecerá la siguiente ventana, donde nos muestra el archivo que creamos, y desde ahí podemos hacer modificaciones, imprimirlo, etc. 43
  • 44. Ensamblando nuestro código fuente hexa.asm: El siguiente paso es el ensamblado del archivo fuente con extensión .asm, es decir el archivo hexa.asm, para ensamblarlo escribimos el nombre de la directiva TASM seguido del nombre del código fuente con extensión .asm: Después 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, también aparece si hay peligros y algo interesante la memoria que ocupa. OBSERVACION: El hecho de ensamblar un código fuente, significa que vamos a generar un código objeto. Al ensamblar nuestro código fuente hexa.asm, nos dimos cuenta que se generó código objeto dentro de la carpeta BIN, con el nombre el mismo nombre pero ahora con extensión .obj, es decir hexa.obj. 44
  • 45. Abriendo el archivo hexa.lst: Según la práctica el siguiente paso es abrir el archivo hexa.lst, para analizarlo, por lo que ejecutamos la siguiente instrucción: Inmediatamente apareció la siguiente ventana: OBSERVACION: Nos dimos cuenta que el ejecutar esa instrucción y al abrir el archivo hexa.lst, ese archivo contenía información general del programa, como es el numero de líneas 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 código fuente ‘nada.asm’, también la versión del ensamblador, el tamaño del archivo, y algo muy importante las características de los segmentos utilizados. 45
  • 46. También nos dimos cuenta que si ejecutábamos la instrucción pero sin la palabra edit, y dar enter se nos abría una ventana donde nos pedía seleccionar un programa de aplicación, elegimos el Wordpad y se nos apareció la misma información pero en la ventana de Wordpad. Enlazando el programa hexa.obj: El siguiente paso es enlazar el código objeto hexa.obj lo que significa que ahora generaremos un código ejecutable con extensión .exe, por lo que debemos de ejecutar en enlazado con la directiva TLINK, con la siguiente instrucción: OBSERVACION: En este momento se creo un programa ejecutable con el nombre de hexa.exe, la extensión .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 instrucción: 46
  • 47. OBSERVACION: Al momento de dar enter, el ensamblador crea una aplicación llamada hexa. Y nos damos cuenta que se cumplió el objetivo del programa. Ejecutando el programa de aplicación hexa: Ahora es el momento de ejecutar el programa de aplicación, para lo cual escribimos la siguiente instrucción: OBSERVACION: Al momento de dar enter, el programa si cumple con su objetivo, ya que muestra un titulo, y los números hexadecimales en una lista escalonada. 47
  • 48. Práctica # 3.- Verificación 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 verificación de equipos de cómputo. Verificar la ejecución paso a paso de un programa. Observar los mensajes que muestra la ejecución del programa.   Recursos de Software:  CheckIt Diagnostics . EQUIPO:  Computadora portátil o de escritorio. DIAGRAMAS:  Analizar el CPU del equipo de cómputo.  Analizar el la memoria principal del equipo de cómputo. 48
  • 49. Apariencia del programa y vista principal, con este programa realizaremos el análisis de las computadoras pertenecientes a los integrantes d el equipo. Sección de INFORMACION del sistema. Sección de INFORMACION del procesador PRUEBA DEL PROCESADOR Haga clic en el botón Iniciar para comenzar la Prueba del procesador. La prueba incluye: 49
  • 50.      Prueba de registro general: verifica los registros generales de la CPU. Prueba de cálculos matemáticos: efectúa funciones aritméticas, tales como cos, sen, exp, etc. Prueba de rendimiento matemático: mide el rendimiento de las pruebas antedichas. Prueba aritmética MMX: mide el rendimiento de las instrucciones MMX. Prueba de velocidad de la CPU: efectúa operaciones de división de enteros de 16 bits y compara su rendimiento con una tabla de referencia de velocidad. Termino del proceso de análisis del procesador… Sección de INFORMACION de la memoria 50
  • 51. PRUEBA DE MEMORIA Haga clic en el botón Iniciar para comenzar la Prueba de memoria. La prueba incluye:      Prueba del patrón 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 inversión móvil: verifica la memoria utilizando el algoritmo de desplazamiento de inversión. 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 posición de origen a otra de destino, ambas aleatorias. Sección de INFORMACION del audio del sistema 51
  • 52. Información que se proporciona en la parte del audio del sistema:      Información 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 música, puede revisar el cableado de los altavoces e ir a la página de información para ver si están instalados los controladores de sonido correctos. Es posible que necesite hacer clic con el botón derecho del ratón 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 opción Prueba de CD de audio, cerciórese de que haya un CD de música 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 botón Reproductor de CD para ejecutar el reproductor de CD de música incluido en CheckIt Diagnostics. Reproduce automáticamente la primera pista de sonido. Cuando haya terminado, cierre la ventana de Prueba de CD de audio. Sección de PRUEBA del audio del equipo. 52
  • 53. Sección de INFORMACION del video del equipo. PRUEBA DE VÍDEO La prueba de vídeo reproduce archivos de vídeo (AVI y/o MPEG). Haga clic en el botón Seleccionar archivos para que aparezca la ventana Seleccionar archivos de vídeo a fin de agregar o eliminar archivos de la lista de reproducción. En la ventana Seleccionar archivos de vídeo, haga clic en el botón Agregar para añadir un nuevo archivo de prueba. Puede agregar hasta 10 archivos de prueba. Haga clic en el botón Eliminar para borrar un archivo de prueba. Haga clic en el botón Editar para seleccionar otro archivo de prueba y reemplazar el actual. Haga clic en el botón Aceptar para confirmar los cambios, o bien en Cancelar para dejarlos sin efecto. Si se encuentra un error o no se reproduce vídeo, puede ir a la página de información y ver si están instalados los controladores AVI y MPEG correctos. Cerciórese de que los controladores de vídeo de Windows y ActiveMovie (o Direct Show) estén instalados para poder reproducir archivos AVI y MPEG. Sección de PRUEBA del video del equipo. 53
  • 54. Sección de Prueba de video en la parte de reproducir archivo AVI Sección de INFORMACION del MODEM PRUEBA DE MÓDEM Para comenzar la prueba de módem, haga clic en el botón Iniciar (para cancelarla, haga clic en el botón Detener). La prueba incluye:  Prueba de tono de marcar: detecta la conexión de la línea telefónica. 54
  • 55.   Prueba de comando estándar: verifica diversos comandos AT estándar. Prueba de comandos avanzados: verifica diversos comandos avanzados. Sección de INFORMACION de gráficos del equipo Sección de PRUEBA de gráficos del equipo PRUEBA DE GRÁFICOS Haga clic en el botón Iniciar para comenzar la Prueba de gráficos.       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 deformación de mapas de bits: prueba la función de deformación de mapas de bits. Prueba de dibujo de mapas de bits: prueba la función de dibujo de mapas de bits. Prueba de dibujo con rellenos automáticos: prueba la función de rellenos automáticos. 55
  • 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, rectángulos y polígonos. Prueba de desplazamiento de mapas de bits: prueba la función de desplazamiento de mapas de bits. Prueba de dibujo de cadenas: prueba diversos tipos de fuentes. Prueba de Direct3D. Prueba de deformación de mapa de bits. Prueba de dibujo de mapa de bits. Prueba de dibujo con rellenos automáticos. 56
  • 57. Prueba de dibujo de píxeles. Prueba de dibujo de trazos. Prueba de dibujo de formas rellenas. Prueba de despl. de mapas de bits. Sección de INFORMACION del disco duro 57
  • 58. PRUEBA DE DISCO DURO La Prueba de disco duro contiene dos funciones: Haga clic en el botón 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 efectúan operaciones de creación, lectura, escritura, búsqueda y eliminación en archivos de diversos tamaños y datos aleatorios en entornos de multiprocesamiento. Sección de INFORMACION del disco extraíble Sección de PRUEBA del disco extraíble 58
  • 59. Sección de INFORMACION del CD-ROM PRUEBA DE CD-ROM Para comenzar la prueba de CD-ROM, primero seleccione el cuadro combinado (si hay más de una unidad), y luego haga clic en el botón Iniciar. La prueba de CD-ROM consta de cuatro elementos:     Prueba de lectura de datos: prueba la lectura y verificación de un archivo de prueba con un tamaño 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 más largos. Prueba de acceso aleatorio: prueba y mide el promedio de tiempo de acceso aleatorio. Sección de PRUEBA del CD-ROM 59
  • 60. Práctica # 4.- Introducción a un sistema mínimo basado en un microcontrolador Motorola MC68HC12 1. OBJETIVOS DE LA PRACTICA Objetivo General: Interconectar, verificar y probar el funcionamiento de un sistema mínimo 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 mínimo basado en microcontrolador 68HC912B32. 2. REFERENCIAS El sistema de desarrollo que se utilizará tiene una orientación hacia a aplicaciones dedicadas al control secuencial, control dedicado en tiempo real, proceso distribuido, adquisición de datos y robótica, entre otros. Este microcontrolador MC68HC912B32, contiene memorias RAM, FLASH y EEPROM, Puerto paralelo con 63 líneas de entrada o salida, Puerto serie síncrono y asíncrono, Temporizador de captura, comparación, modulación por ancho de pulso (PWM) y convertidor analógico 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 interactúa 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 programación con opciones de depuración. o Modo Jump EEPROM, con programación de la memoria EEPROM o Modo POD-BDM, para hacer depuración en tiempo de ejecución. o Modo Bootload, que es el modo de autoarranque al inicializar el microcontrolador. 60
  • 61. Principales partes de la tarjeta La tarjeta de desarrollo SIS68HC12 esta construida basándose en el microcontrolador 68HC912B32, y las principales partes se muestran en la siguiente figura: Fuente de voltaje de 12 a 16 v c.a. Led de Grabación J10 Led de encendido U5 U6 12V 0V DD+ Led de Prueba en PB0 Interfaz de comunicación RS485 J4 U4 JP9 J9 Interfaz de comunicación RS485 J1 JP10 U1 J2 J3 U3 MS1 U2 Ubicación 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 localización 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 programación de la memoria flash. El circuito de inicio "reset" lo realiza el circuito integrado U2, que es el encargado de generar la señal de inicio durante el encendido, cada vez que se presiona el botón MS1 y al detectar un bajo voltaje de alimentación. Para la comunicación 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 comunicación 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 61
  • 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 localización de puentes y conectarse a las terminales D+, D- del conector J9. Con la conexión RS485 se pueden comunicar a través de 2 hilos hasta 32 sistemas. 3. MATERIAL Y EQUIPO Hardware 1 Tarjeta de Desarrollo sis68hc912 Tarjeta de desarrollo 1 Cable serial RS-232 Macho – Hembra Cable serial 1 Fuente de voltaje de corriente continua o alterna de 16 volts Fuente de voltaje 1 Computadora con puerto RS-232, 16 Mbytes de memoria como mínimo. Software 1 1 Sistema Operativo MS-DOS 386 o superior, o Sistema Operativo Windows Compilador para Microcontrolador Motorola 68HC12 (peasm12) Programas de ejemplos (para peasm12) 62
  • 63. 4. PROCEDIMIENTO Interconexión 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 activación del led de encendido, color VERDE, que se encuentra ubicado en la figura siguiente: Prueba de encendido del microcontrolador Verificación Para verificar el correcto funcionamiento del microcontrolador en la interconexión con la computadora procederemos como a continuación 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. 63
  • 64. ii. Presionar la tecla F10 para acceder al menú general. iii. Presionar la tecla C para acceder al menú de configuración de puerto de comunicaciones. iv. 1. 2. 3. 4. 5. Seleccionar la configuración siguiente: Comm 2 No. Puerto serial. Baud 9600 Velocidad de transmisión Parity N Paridad en la transmisión Length 8 Amplitud de los paquetes en bits Stop 1 Cuantos bits de paro 64
  • 65. v. Presionar la tecla ESC dos veces para salir de los menús. vi. Presionar la tecla F7 para abrir la ventana de transmisión de información. 65
  • 66. vii. Presione el botón de reset del sistema de desarrollo del microcontrolador. Si se recibe la siguiente pantalla la comunicación se ha realizado satisfactoriamente. 66
  • 67. Prueba de funcionamiento Ya que se ha verificado que la conexión se ha realizado satisfactoriamente se procederá a verificar el correcto funcionamiento del microcontrolador a través de la ejecución de un programa de prueba previamente compilado. 1. Al término de la Verificación de comunicación entre la placa de desarrollo y la computadora, nos encontraremos en la ventana de comunicación. 2. En la placa del sistema de desarrollo active el jumper JP3 para poder activar el led de prueba. 67
  • 68. 3. Se escribirá en esta ventana la instrucción 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 ubicación completa, y el nombre completo del programa esta será “unidaddirectorio_de_instalaciónejemplospeMCUEZledram.sx” sin comillas. 68
  • 69. 5. Al término de la descarga, debe aparecer el prompt indicando que la descarga ha sido satisfactoria. 6. Para ejecutar el programa introduzca la instrucción “g 800” sin comillas para indicar que se debe ejecutar el programa que se encuentra en la dirección $800 que es la dirección de memoria RAM de código de datos del usuario. 69
  • 70. El resultado será el parpadeo constante del led color AMARILLO, que se encuentra ubicado en la siguiente posición: Led de prueba. 7. Para retornar a la pantalla de edición presionar la tecla F10. EJEMPLO: Prueba con programa Ya que se ha visto como comprobar comunicación con la tarjeta, transferir los programas al microcontrolador, y ejecutarlos desde la computadora en el microcontrolador, en esta ultima etapa de la práctica 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 edición. 70
  • 71. 2. Para poder cargar un programa en el editor del compilador presionar la tecla F3 y escribir la dirección completa, al finalizar presionar “Enter” y el programa será cargado. 3. Al cargar el programa el siguiente paso es la compilación para acceder al menú presionar la tecla F10 y después 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 “ 71
  • 72. f. Includes View “ 4. Para salir presionar ESC dos veces. 72
  • 73. 5. Para compilar presionar la tecla F4. Nota: Es importante que las librerías se encuentren en el directorio del compilador y no en el directorio del programa, además de que las librerías se dejen en el lugar donde se encuentran dentro del código del programa. 6. Repita los pasos para cargar, compilar y ejecutar los programas que se encuentran en el directorio de ejemplos. 73
  • 74. Bibliografía Abel, Peter (1996). Lenguaje Ensamblador y Programación para PC IBM y Compatibles. Editorial Pearson Educación. Mexico Brey, Barry (2001). Los Microprocesadores Intel. Editorial Prentice Hall. México Godfrey, J. Ferry (1991). Lenguaje Ensamblador para Microcomputadoras IBM. Editorial Prentice Hall. México Valvano, Jonathan (2004). Introducción a los Sistemas de Microcomputadora Embebidos, Simulación de Motorola 6811 y 6812. Editorial Thomson. México 74