You are on page 1of 74

SUBSECRETARA DE EDUCACIN SUPERIOR

DIRECCIN
GENERAL
DE
EDUCACIN
SUPERIOR TECNOLGICA
INSTITUTO TECNOLGICO DE ACAPULCO

MANUAL DE PRCTICAS

ARQUITECTURA DE
COMPUTADORAS
(SCC0402)

Ing. Rolando Palacios Ortega

Acapulco Gro., Octubre de 2006

Contenido

Prctica # 1.- Ejecucin de Microoperaciones en una


Computadora con arquitectura clsica

Prctica # 2.- Ejecucin de Instrucciones en


una
Computadora con arquitectura clsica

26

Prctica # 3.- Verificacin de los elementos que integran la


Arquitectura de una computadora comercial
utilizando software especializado

48

Prctica # 4.- Introduccin a un sistema mnimo basado


en un microcontrolador Motorola MC68HC12

60

Bibliografa

74

Introduccin

El desarrollo acelerado de la tecnologa de los sistemas electrnicos digitales


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

Prctica # 1.- Ejecucin de Microoperaciones en una


Computadora con arquitectura clsica.

Objetivos:

Material:

Disear el modelo de una computadora con arquitectura clsica.


Analizar el comportamiento interno de una CPU.
Evaluar el modelo a travs de un conjunto de microoperaciones.

Electronics WorkBench

Equipo:

Computadora Personal compatible con IBM PC

Diagrama:

Actividades:
Investigacin documental relacionada con el tema.
Disear el circuito electrnico que realice las funciones del esquema a
bloques.
Capturar el circuito en el entorno de Electronics WorkBench.
Verificar la realizacin de microoperaciones de transferencia,
aritmticas, lgicas y de desplazamiento.
Registrar resultados y elaborar informe de la prctica.

Manos a la obra:
Antes de empezar es necesario analizar el diagrama a bloques del circuito
electrnico que se disear.
Hay que tener bien definidos ciertos puntos:
Saber cul es el objetivo principal del circuito de acuerdo al diagrama de
bloques.
Conocer minuciosamente el funcionamiento en general del circuito.
Tener presente, que tipo de dispositivos electrnicos sern necesarios para
armar el circuito electrnico.
Conocer cual es el funcionamiento de cada uno de los dispositivos que
forman parte del circuito.
As, que antes de todo, es necesario tener estos puntos definidos para evitar
conflictos o arbitrariedades durante el transcurso del ensamble del circuito
electrnico.

Anlisis del esquema a bloques:


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

Ocurre un caso especial con la memoria interna del CPU, sta esta formada
por registros, con el propsito de almacenar los datos en ellos, y adems
cuenta con un circuito de tercer estado, para tener el control de las Lneas.
La memoria de antemano tiene la necesidad de utilizar por lo menos dos
Lneas:
111... Lectura.
222... Escritura.
Ya que la memoria realiza una de estas dos funciones una a la vez, no se
puede leer un dato, y al mismo tiempo escribir en la memoria un nuevo dato.
Por lo que surge la necesidad de administrar estas dos Lneas con un circuito
de tercer estado.

Diseo a borrador del circuito electrnico:


Como ya mencionamos, para el armado del circuito necesitamos:
Registros: 74LS116.
ALU: 74LS181.
Acumulador: 74LS194.
Circuito de tercer estado: 74LS244.
Flip Flop tipo D: 74LS74.
Leds, para visualizar el recorrido que hacen el conjunto de datos.
Las Lneas de +5V y GND.
La Lneas de datos que constituyen el bus del sistema.
Switch controlados desde teclado para manejar las unidades de control.
Las unidades de control, son por ejemplo, el clock, los modos de seleccin de
las ALU, el tipo de desplazamiento del acumulador, se llaman unidades de
control debido a que a partir del estado de ests, el dispositivo acta de una
forma otra.
Con las lneas de control, se pueden configurar los dispositivos electrnicos del
esquema para que realice las funciones que esperamos de l. Las unidades de
control dependen del tipo de dispositivo electrnico con el que se est
trabajando, para ello es necesario, analizar la tabla del verdad del dispositivo
electrnico con el cual se trabaja.

El borrador del circuito electrnico es el siguiente:

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


electrnico.

Si se observa con detalle el diagrama, se especifica que tipo de circuito


integrado se utiliza, y la numeracin que lleva consigo corresponde al pin y su
modo de conexin con los ms dispositivos que forman parte del esquema a
bloques.


Elaboracin del circuito en Electronics WorkBench:


Descripcin de los dispositivos del circuito electrnico:

74LS116:

Este tipo de dispositivos se utiliza para el almacenamiento de los datos, es


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

Implementacin en el circuito:

Tabla de verdad:

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

74LS181:

Este dispositivo corresponde a la Unidad Aritmtica Lgica, que es la


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

10

Implementacin en el circuito:

Tabla de verdad:

11

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

74LS194:

Este dispositivo corresponde al acumulador, cuya implementacin en el circuito


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

Implementacin en el circuito:

12

Tabla de verdad:

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

74LS244:

Este dispositivo corresponde al circuito de tercer estado, que es indispensable


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

13

Vista del encapsulado:

Implementacin en el circuito:

Tabla de verdad:

14

Funcionalidad:
La principal funcin del circuito de tercer estado es la de administrar las lneas,
en este caso las que se encuentran asociadas al bus, y a la memoria.

Realizacin de las microoperaciones en el circuito:


Programa #1:
Este programa tiene como objetivo introducir datos a la entrada, hay que
aclarar que el sistema numrico empleado en este circuito electrnico es el
sistema binario, por lo que los datos son datos binarios, desde la entrada,
proceso y hasta la salida.
Siguiendo el sistema binario, se debe de introducir datos en la entrada, y
transferir este registro de entrada a la localidad de memoria M1,
posteriormente, se vuelve a introducir un nuevo registro de entrada, que har
una operacin aritmtica de suma con acarreo con los datos del registro de la
memoria M1, utilizando claramente la Unidad Aritmtica Lgica, el resultado se
almacenara en el acumulador y posteriormente se transferir al registro de
salida.
Microoperaciones:
START
MOV M1, ENT
ADD ENT, M1
M1
acumulador.
MOV SAL, AC
END

Almacena la entrada en la memoria M1.


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

Despus se debe de introducir los datos, activando o desactivando los


switch de entrada, hay que recordar que el sistema numeracin que
empleamos es el sistema binario.

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

15

Posteriormente se activa, el circuito de tercer estado del bus en la lnea de


escritura (1), para que los datos de entrada pasen a bucear al bus, y desde ah
puedan ser jalados para almacenarse en algn registro.

El siguiente paso, segn el programa, es almacenar los datos de entrada en


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

Posteriormente, el programa dice que se tiene que introducir una nueva


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

Ya que los datos se encuentren en el bus, se van almacenar en el registro


A, para lo cual se activa el registro A y sin olvidar se poner se candado.

El siguiente paso es transferir los datos del registro de localidad de memoria


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

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

Una vez que los datos que se sumarn se encuentren en el registro A y B,


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

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

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

Una vez en el bus, los datos van a ser transferidos a la salida, por lo que
se activa la lnea de lectura (0) del circuito de tercer estado y tambin es
activado el reloj del registro de salida, y el registro de salida, va a ser
visualizado por leds.
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, despus, se vuelve a
introducir un nuevo registro de entrada que debe almacenarse en la localidad
de memoria M1, posteriormente una vez almacenados los datos en la memoria,
se realiza la operacin lgica AND y el resultado se almacenara en el
acumulador y posteriormente se transferir al registro de salida.
Microoperaciones:
START
MOV M2, ENT
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.
Operacin 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 lnea de lectura (0),
y que el circuito de tercer estado de la memoria se encuentren desactivadas.

Despus se debe de introducir los datos, activando o desactivando los


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

Posteriormente se activa, el circuito de tercer estado del bus en la lnea de


escritura (1), para que los datos de entrada pasen a bucear al bus, y desde ah
puedan ser jalados para almacenarse en algn registro.

El siguiente paso, segn el programa, es almacenar los datos de entrada en


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

Posteriormente, se tiene que introducir una nueva entrada, por lo que es


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

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 operacin AND y para lo cual los contenidos


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

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

Ahora se debe de transferir los datos del registro de localidad de memoria


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

Una vez en el bus, se activa el registro B para que los datos se almacenen

en l y se pone su candado. Una vez que los datos se encuentren en el


registro B, desactiva la lnea que controla la salida de M2.

Una vez que los datos que se sumarn se encuentren en el registro A y B,


es hora de configurar a la ALU, para que realice la operacin lgica AND,
segn su tabla de verdad, las entradas S3 a S0: HBHH, y como es una
operacin lgica AB, M=H deben de estar as.

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

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

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

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, despus, se vuelve a
introducir un nuevo registro de entrada que debe almacenarse en la localidad
de memoria M2, posteriormente una vez almacenados los datos en la memoria,
se realiza la operacin de suma ADD y el resultado se almacenara en el
acumulador y posteriormente se transferir al registro de la localidad de
memoria M2.
Despus se vuelve a introducir una nueva entrada de datos y se realiza una
operacin de suma con el contenido del registro de la localidad de memoria
M2, el resultado se almacenar en acumulador y posteriormente se transferir
a la salida.
Posteriormente se introducir un nuevo conjunto de datos de entrada y se
multiplicar por 2 y el resultado se almacenar en el acumulador que
posteriormente se transferir a la salida.
Consecutivamente, se introducir una nueva entrada y se dividir entre 2 y el
resultado obtenido se almacenar en el acumulador y posteriormente se
transferir a la salida.
Microoperaciones:
START
MOV M1, ENT
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.
Operacin 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.
Operacin 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 lnea de lectura (0),
y que el circuito de tercer estado de la memoria se encuentren desactivadas.

Despus se debe de introducir los datos, activando o desactivando los


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

Posteriormente se activa, el circuito de tercer estado del bus en la lnea de


escritura (1), para que los datos de entrada pasen a bucear al bus, y desde ah
puedan ser jalados para almacenarse en algn registro.

El siguiente paso, segn el programa, es almacenar los datos de entrada en


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

Posteriormente, se tiene que introducir una nueva entrada, por lo que es


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

Ya que los datos que se encuentren en el bus, se van almacenar en la


localidad de memoria M2, se debe activar el registro M2, y se pone su
candado para que los datos almacenados permanezcan estables.

El siguiente paso es realizar la operacin ADD y para lo cual los contenidos


de las localidades de memoria deben estar almacenados en el registro A y B
para poder hacer la operacin AND en la ALU.

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

Una vez en el bus, se activa el registro A para que los datos se almacenen

en l y se pone su candado. Una vez almacenados los datos en el registro A,


se desactiva la lnea que controla la salida de M1.

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 lnea que controla la salida del registro de la memoria M2 (Z),
para que los datos pasen del registro M2 al bus.

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

Una vez que los datos que se sumarn se encuentren en el registro A y B,


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

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

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

Una vez en el bus, los datos van a ser transferidos a la localidad de


memoria M2, pero hay que recordar que M2, ya tiene un dato almacenado, y
para borrarlo y almacenar el nuevo registro de datos, es necesario bajar
primero a M2 y luego su candado y posteriormente hay que activar a M2 para
almacenar el nuevo registro de datos y tambin hay que subir su candado,
para evitar perdida de estos datos.

Posteriormente, el programa dice que se tiene que introducir una nueva


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

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

Posteriormente se activa, el circuito de tercer estado del bus en la lnea de


escritura (1), para que los datos de entrada pasen a bucear al bus, y desde ah
puedan ser jalados para almacenarse en algn registro.

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 tambin hay que subir su candado,
para evitar perdida de estos datos.

El siguiente paso es transferir los datos del registro de localidad de memoria


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

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

Una vez que los datos que se sumarn se encuentren en el registro A y B,


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

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

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

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

Siguiendo las instrucciones del programa, nos dice que debemos de


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

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 algn registro, ya que si se baja, se pierden totalmente
los datos de entrada.

Posteriormente se activa, el circuito de tercer estado del bus en la lnea de


escritura (1), para que los datos de entrada pasen a bucear al bus, y desde ah
puedan ser jalados para almacenarse en algn registro.

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

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

Una vez que se realiz la operacin de transferir A tal y como est, el


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

El programa dice que la entrada la debemos de multiplicar por 2, por lo que


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

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

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

Siguiendo las instrucciones del programa, nos dice que debemos de


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

23

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

Posteriormente se activa, el circuito de tercer estado del bus en la lnea de


escritura (1), para que los datos de entrada pasen a bucear al bus, y desde ah
puedan ser jalados para almacenarse en algn registro.

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

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

Una vez que se realiz la operacin de transferir B tal y como est, el


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

El programa dice que la entrada la debemos de dividir entre 2, por lo que


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

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

Una vez en el bus, los datos van a ser transferidos a la a la localidad de


memoria M1, pero hay que recordar que M1, ya tiene un dato almacenado, y
para borrarlo y almacenar el nuevo registro de datos, es necesario bajar
primero a M1 y luego su candado y posteriormente hay que activar a M1 para
almacenar el nuevo registro de datos y tambin hay que subir su candado,
para evitar perdida de estos datos.

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

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

25

Prctica # 2.- Ejecucin de Instrucciones en un


microprocesador con arquitectura clsica

Objetivos:

Recursos de Software:

Utilizar los recursos del Lenguaje Ensamblador de un procesador real


Analizar la ejecucin de instrucciones en un procesador con
arquitectura clsica

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 cdigo 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 prctica en el editor
de texto Wordpad, por lo que tenemos que abrirlo:

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

Una vez capturado el programa se guarda en la siguiente direccin:


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

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

El entorno de trabajo del MS-DOS (smbolo del sistema) es el siguiente, lo que


se ve que esa pantalla obscura causa an ms temor al usar el ensamblador,
ya que entorno no es nada amigable con el usuario.

31

OBSERVACION:

Cuando se abre el smbolo del sistema, aparece la siguiente ruta, y habr


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

Pero resulta que dentro de la carpeta TASM, existen ms carpetas y los


cdigos fuentes se encuentran dentro de la carpeta BIN, por lo que debemos
incluir esta carpeta en la direccin, para lo cual ejecutamos la siguiente
instruccin:

32

Verificando la escritura de nuestro cdigo fuente:


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

Inmediatamente se nos aparecer la siguiente ventana, donde nos muestra el


archivo que creamos, y desde ah podemos hacer modificaciones, imprimirlo,
etc.

Para salir de esta ventana y regresar al MS-DOS, vamos al men Archivo y


tiene una opcin de Salir.

33

Ensamblando nuestro cdigo fuente nada.asm:


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

Despus de dar enter, se desplegara un listado donde muestra el archivo


ensamblado, si hay errores muestra el numero de errores, en caso existen
cero errores, tambin aparece si hay peligros y algo interesante la memoria
que ocupa.
OBSERVACION:

El hecho de ensamblar un cdigo fuente, significa que vamos a generar un


cdigo objeto. Al ensamblar nuestro cdigo fuente nada.asm, nos dimos cuenta
que se gener cdigo objeto dentro de la carpeta BIN, con el nombre el mismo
nombre pero ahora con extensin .obj, es decir nada.obj.
Abriendo el archivo nada.lst:
Segn la prctica el siguiente paso es abrir el archivo nada.lst, para analizarlo,
inmediatamente apareci la siguiente ventana:

34

OBSERVACION:

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

OBSERVACION:

En este momento se creo un programa ejecutable con el nombre de nada.exe,


la extensin .ese significa un programa ejecutable, y para verificar que
realmente lo haya creado, debemos de ir a la carpeta BIN y ah estar el
archivo nada.exe.

Ejecutando el programa nada.exe:


El siguiente paso es ejecutar el programa nada.exe, por lo que escribimos la
siguiente instruccin:

35

OBSERVACION:

Al momento de dar enter, el ensamblador crea una aplicacin llamada nada.


Que posteriormente va a ser el que se va a ejecutar.

Ejecutando el programa de aplicacin nada:


Ahora es el momento de ejecutar el programa de aplicacin, para lo cual
escribimos la siguiente instruccin:

OBSERVACION:

Al momento de dar enter, el programa pues si cumple con su objetivo, ya que


no realiza nada, solamente se llega a ver un ligero pantallaso. Pero en realidad
si hace algo, toma el control y despus se lo devuelve al MS-DOS.

36

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

Una vez capturado el programa lo guardaremos en la direccin: c:\tasm\bin\,


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

EDIT NADA.ASM

Inmediatamente se nos aparecer la siguiente ventana, donde nos muestra el


archivo que creamos, y desde ah podemos hacer modificaciones, imprimirlo,
etc.

37

Ensamblando nuestro cdigo fuente mensaje.asm:


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

Despus de dar enter, se desplegara un listado donde muestra el archivo


ensamblado, si hay errores muestra el numero de errores, en caso existen
cero errores, tambin aparece si hay peligros y algo interesante la memoria
que ocupa.
OBSERVACION:

El hecho de ensamblar un cdigo fuente, significa que vamos a generar un


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

38

Abriendo el archivo mensaje.lst:


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

Inmediatamente apareci la siguiente ventana:

OBSERVACION:

Nos dimos cuenta que el ejecutar esa instruccin y al abrir el archivo


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

39

Tambin nos dimos cuenta que si ejecutbamos la instruccin pero sin la


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

OBSERVACION:

En este momento se creo un programa ejecutable con el nombre de


mensaje.exe, la extensin .exe significa un programa ejecutable, y para
verificar que realmente lo haya creado, debemos de ir a la carpeta BIN y ah
estar el archivo mensaje.exe.

Ejecutando el programa mensaje.exe:


El siguiente paso es ejecutar el programa mensaje.exe, por lo que escribimos
la siguiente instruccin:

40

OBSERVACION:

Al momento de dar enter, el ensamblador crea una aplicacin llamada mensaje.


Y nos damos cuenta que se visualizo un mensaje,
Ejecutando el programa de aplicacin mensaje:
Ahora es el momento de ejecutar el programa de aplicacin, para lo cual
escribimos la siguiente instruccin:

OBSERVACION:

Al momento de dar enter, el programa si cumple con su objetivo, ya que


muestra el mensaje que escribimos en el programa.

41

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

Una vez capturado el programa lo guardaremos en la direccin: c:\tasm\bin\,


asignndole el nombre: mensaje con la extensin .asm, con el motivo que
pueda ser reconocido como cdigo fuente por el ensamblador TurboAssembler:

42

Abrir el smbolo del sistema:


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

Verificando la escritura de nuestro cdigo fuente:


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

Inmediatamente se nos aparecer la siguiente ventana, donde nos muestra el


archivo que creamos, y desde ah podemos hacer modificaciones, imprimirlo,
etc.

43

Ensamblando nuestro cdigo fuente hexa.asm:


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

Despus de dar enter, se desplegara un listado donde muestra el archivo


ensamblado, si hay errores muestra el numero de errores, en caso existen
cero errores, tambin aparece si hay peligros y algo interesante la memoria
que ocupa.
OBSERVACION:

El hecho de ensamblar un cdigo fuente, significa que vamos a generar un


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

44

Abriendo el archivo hexa.lst:


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

Inmediatamente apareci la siguiente ventana:

OBSERVACION:

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

45

Tambin nos dimos cuenta que si ejecutbamos la instruccin pero sin la


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

OBSERVACION:

En este momento se creo un programa ejecutable con el nombre de hexa.exe,


la extensin .exe significa un programa ejecutable, y para verificar que
realmente lo haya creado, debemos de ir a la carpeta BIN y ah estar el
archivo hexa.exe.

Ejecutando el programa hexa.exe:


El siguiente paso es ejecutar el programa hexa.exe, por lo que escribimos la
siguiente instruccin:

46

OBSERVACION:

Al momento de dar enter, el ensamblador crea una aplicacin llamada hexa. Y


nos damos cuenta que se cumpli el objetivo del programa.
Ejecutando el programa de aplicacin hexa:
Ahora es el momento de ejecutar el programa de aplicacin, para lo cual
escribimos la siguiente instruccin:

OBSERVACION:

Al momento de dar enter, el programa si cumple con su objetivo, ya que


muestra un titulo, y los nmeros hexadecimales en una lista escalonada.

47

Prctica # 3.- Verificacin de los elementos que integran la


arquitectura de una computadora comercial
utilizando software especializado
OBJETIVO(S):

Analizar el estado de los componentes que conforman una computadora


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

Recursos de Software:

CheckIt Diagnostics

EQUIPO:

Computadora porttil o de escritorio.

DIAGRAMAS:

Analizar el CPU del equipo de cmputo.

Analizar el la memoria principal del equipo de cmputo.

48

Apariencia del programa y vista principal, con este programa realizaremos el


anlisis de las computadoras pertenecientes a los integrantes d el equipo.

Seccin de INFORMACION del sistema.

Seccin de INFORMACION del procesador

PRUEBA DEL PROCESADOR


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

49

Prueba de registro general: verifica los registros generales de la CPU.


Prueba de clculos matemticos: efecta funciones aritmticas, tales
como cos, sen, exp, etc.
Prueba de rendimiento matemtico: mide el rendimiento de las pruebas
antedichas.
Prueba aritmtica MMX: mide el rendimiento de las instrucciones MMX.
Prueba de velocidad de la CPU: efecta operaciones de divisin de
enteros de 16 bits y compara su rendimiento con una tabla de referencia
de velocidad.

Termino del proceso de anlisis del procesador

Seccin de INFORMACION de la memoria

50

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

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


patrones de datos.
Prueba de desplazamiento de unos: verifica la memoria utilizando el
algoritmo de desplazamiento de unos.
Prueba de inversin mvil: verifica la memoria utilizando el algoritmo de
desplazamiento de inversin.
Prueba de desplazamiento de ceros: verifica la memoria utilizando el
algoritmo de desplazamiento de ceros
Prueba de copia de bloque de memoria aleatoria: verifica la memoria
copiando y comparando un bloque de datos desde una posicin de origen
a otra de destino, ambas aleatorias.

Seccin de INFORMACION del audio del sistema

51

Informacin que se proporciona en la parte del audio del sistema:

Informacin de controladores.
Dispositivos de salida Wave.
Dispositivos de entrada Wave.
Dispositivos de salida MIDI.
Dispositivos de entrada MIDI

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

Seccin de PRUEBA del audio del equipo.

52

Seccin de INFORMACION del video del equipo.

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

Seccin de PRUEBA del video del equipo.

53

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

Seccin de INFORMACION del MODEM

PRUEBA DE MDEM
Para comenzar la prueba de mdem, haga clic en el botn Iniciar (para
cancelarla, haga clic en el botn Detener).

La prueba incluye:

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

54

Prueba de comando estndar: verifica diversos comandos AT estndar.


Prueba de comandos avanzados: verifica diversos comandos
avanzados.

Seccin de INFORMACION de grficos del equipo

Seccin de PRUEBA de grficos del equipo

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

Prueba de DirectSound: prueba si su sistema tiene la capacidad


DirectSound.
Prueba de Direct3D: prueba si su sistema tiene la capacidad Direct3D.
Prueba de DirectDraw: prueba si su sistema tiene la capacidad
DirectDraw.
Prueba de deformacin de mapas de bits: prueba la funcin de
deformacin de mapas de bits.

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


mapas de bits.
Prueba de dibujo con rellenos automticos: prueba la funcin de
rellenos automticos.
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, rectngulos y
polgonos.
Prueba de desplazamiento de mapas de bits: prueba la funcin de
desplazamiento de mapas de bits.
Prueba de dibujo de cadenas: prueba diversos tipos de fuentes.

Prueba de Direct3D.

Prueba de deformacin de mapa de bits.

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

56

Prueba de dibujo de pxeles.

Prueba de dibujo de trazos.

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

Seccin de INFORMACION del disco duro

57

PRUEBA DE DISCO DURO


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

Seccin de INFORMACION del disco extrable

Seccin de PRUEBA del disco extrable

58

Seccin de INFORMACION del CD-ROM

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

Prueba de lectura de datos: prueba la lectura y verificacin de un archivo


de prueba con un tamao superior a 5Mb en el CD-ROM.
Prueba de velocidad de transferencia: prueba y mide la tasa de
transferencia.
Prueba de acceso Full-Stroke: prueba y mide los tiempos de acceso
ms largos.
Prueba de acceso aleatorio: prueba y mide el promedio de tiempo de
acceso aleatorio.

Seccin de PRUEBA del CD-ROM

59

Prctica # 4.- Introduccin a un sistema mnimo basado


en un microcontrolador Motorola MC68HC12

1.

OBJETIVOS DE LA PRACTICA

Objetivo General:
Interconectar, verificar y probar el funcionamiento de un sistema mnimo
basado en el microcontrolador 68HC912B32.
Objetivos Particulares:
a) Conocer una arquitectura diferente a la de Intel, en este caso Motorola.
b) Identificar los elementos del sistema de desarrollo del microcontrolador de
Motorola 68HC12 de la empresa RacoM Microelectronics llamado sis68HC912
basado en el modelo de microcontrolador MC68HC912B32.
c) Ejecutar programas en el sistema mnimo basado en microcontrolador
68HC912B32.
2.

REFERENCIAS

El sistema de desarrollo que se utilizar tiene una orientacin hacia a


aplicaciones dedicadas al control secuencial, control dedicado en tiempo real,
proceso distribuido, adquisicin de datos y robtica, entre otros.
Este microcontrolador MC68HC912B32, contiene memorias RAM, FLASH y
EEPROM, Puerto paralelo con 63 lneas de entrada o salida, Puerto serie
sncrono y asncrono, Temporizador de captura, comparacin, modulacin por
ancho de pulso (PWM) y convertidor analgico digital A/D con 8 canales,
programable de 8 o 10 bits.
La memoria FLASH contiene 32 Kbytes, la memoria EEPROM contiene 786
Bytes, la memoria FLASH interacta con el programa MCUez o con una
terminal, por medio del puerto serie.
La tarjeta de desarrollo puede operar en los siguientes modos:
o

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


depuracin.

Modo Jump EEPROM, con programacin de la memoria EEPROM

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

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 basndose 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
Grabacin
J10

Led de
encendido

U5

U6

12V
0V
DD+

Led de Prueba

en PB0

Interfaz de
comunicacin
RS485

J4
U4
JP9
J9

Interfaz de
comunicacin
RS485

J1

JP10

U1

J2

J3

U3

MS1

U2
Ubicacin de componentes en la tarjeta sis68HC912.

El microcontrolador U1 es de montaje superficial y se encuentra soldado en


la parte inferior, todas las terminales utilizables del microcontrolador se
encuentran disponibles mediante los conectores J1, J2, J3 y J4 y se describen
en la tabla y figura de localizacin de conectores y puentes
La tarjeta se alimenta mediante una fuente externa de voltaje de corriente
continua o alterna de 16 volts que se conecta en las terminales 0V, 12 del
conector J10, la tarjeta tiene incorporado un regulador U6 de 5 volts para
alimentar el microcontrolador y un regulador U5 para el voltaje de programacin
de la memoria flash.
El circuito de inicio "reset" lo realiza el circuito integrado U2, que es el
encargado de generar la seal de inicio durante el encendido, cada vez que se
presiona el botn MS1 y al detectar un bajo voltaje de alimentacin.
Para la comunicacin con una computadora personal se tiene que conectar
un cable serial DB9 del conector J9 de la tarjeta al puerto serie de la
computadora. El formato de comunicacin es de 8 bits de datos, sin paridad, 1
bit de paro y velocidad de 9600 bauds, programables bajo comandos dbug-12,
El circuito integrado U3 es el que convierte los niveles TTL del microcontrolador
a los niveles RS-232

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 localizacin de puentes y conectarse
a las terminales D+, D- del conector J9. Con la conexin RS485 se pueden
comunicar a travs de 2 hilos hasta 32 sistemas.
3.

MATERIAL Y EQUIPO

Hardware
1

Tarjeta de Desarrollo sis68hc912

Tarjeta
de
desarrollo

Cable serial RS-232 Macho Hembra

Cable serial

Fuente de voltaje de corriente continua o alterna de 16 volts

Fuente de voltaje

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


mnimo.

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

Interconexin

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


computadora personal.
2. Conecte la fuente de poder en las terminales indicadas y verifique
cuidadosamente que la polaridad es la correcta.
Nota:
Deber obtener como resultado la activacin del led de encendido, color
VERDE, que se encuentra ubicado en la figura siguiente:

Prueba de encendido del microcontrolador


Verificacin

Para verificar el correcto funcionamiento del microcontrolador en la


interconexin con la computadora procederemos como a continuacin se
describe:
1. Copiar en una carpeta el contenido del archivo peasm12.zip
2. Buscar en la carpeta compilador el archivo IASM12.EXE y
ejecutarlo
3. El siguiente paso es configurar el compilador por primera vez
para asegurarnos de su correcto funcionamiento.
i. Presionar cualquier tecla para salir de la pantalla de
inicio.

63

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

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

Seleccionar la configuracin siguiente:


Comm
2
No. Puerto serial.
Baud
9600 Velocidad de transmisin
Parity
N
Paridad en la transmisin
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
mens.
vi.
Presionar la tecla F7 para abrir la ventana de
transmisin de informacin.

65

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

66

Prueba de funcionamiento

Ya que se ha verificado que la conexin se ha realizado satisfactoriamente


se proceder a verificar el correcto funcionamiento del microcontrolador a travs
de la ejecucin de un programa de prueba previamente compilado.
1. Al trmino de la Verificacin de comunicacin entre la placa de
desarrollo y la computadora, nos encontraremos en la ventana de
comunicacin.

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


activar el led de prueba.

67

3. Se escribir en esta ventana la instruccin Load 0, que indica la


descarga del programa al microcontrolador con un desplazamiento en
memoria de 0.

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


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

68

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


descarga ha sido satisfactoria.

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


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

69

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

Led de prueba.
7.

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

EJEMPLO:
Prueba con programa

Ya que se ha visto como comprobar comunicacin con la tarjeta, transferir


los programas al microcontrolador, y ejecutarlos desde la computadora en el
microcontrolador, en esta ultima etapa de la prctica se aprender a cargarlos
en el compilador, editarlos y compilarlos.
Cargar un programa en el compilador.
1. Ejecutar IASM12.EXE, presionar cualquier tecla para pasar hacia la
pantalla de edicin.

70

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


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

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


acceder al men presionar la tecla F10 y despus la tecla A, para acceder al
men de Ensamblado, las opciones son:
a. Object
.s19
Cambiar con Enter
b. Listing
On

c. Debug
On

d. Cycle cntr
Off

e. Macros
Hide

71

f.

Includes

View

4. Para salir presionar ESC dos veces.

72

5. Para compilar presionar la tecla F4.

Nota:
Es importante que las libreras se encuentren en el directorio del compilador
y no en el directorio del programa, adems de que las libreras se dejen en el
lugar donde se encuentran dentro del cdigo del programa.
6. Repita los pasos para cargar, compilar y ejecutar los programas que se
encuentran en el directorio de ejemplos.

73

Bibliografa

Abel, Peter (1996). Lenguaje Ensamblador y Programacin para PC IBM y


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

74