Está en la página 1de 15

xComputer Lab 1: Introduccin a xComputer

ESTE LABORATORIO es una introduccin al applet xComputer, que simula una computadora
modelo simple (que tambin se llama xComputer). La computadora modelo se trata en el Captulo
3 de La mquina ms compleja. El xComputer consiste en una Unidad Central de Procesamiento
(CPU) y una memoria principal que contiene 1024 nmeros binarios de diecisis bits. La CPU
contiene una unidad de lgica aritmtica (ALU) para realizar clculos aritmticos bsicos y lgicos.
Tambin contiene ocho registros, que contienen nmeros binarios que se utilizan directamente en
los clculos de la CPU, un circuito de control, que es responsable de supervisar los clculos que
realiza la CPU, y un reloj, que maneja toda la operacin de la computadora girando su nico cable
de salida de encendido y apagado.

El applet xComputer que usar en esta prctica de laboratorio le permite cargar programas y datos
en la memoria del xComputer simulado. Luego puede ver mientras se ejecutan esos programas, y
puede observar cmo los nmeros almacenados en la computadora cambian a medida que se
ejecuta un programa. El applet muestra solo los registros y la memoria principal. Tienes que asumir
que el circuito de control, la ALU y el reloj funcionan internamente en la PC real .

Esta prctica de laboratorio contiene informacin bsica sobre xComputer y su lenguaje de


mquina. Demuestra cmo se extraen las instrucciones de la memoria y las ejecuta la CPU.
Tambin explicar las caractersticas del applet xComputer y el proceso de programacin del
xComputer. El prximo laboratorio cubrir el proceso de programacin en ms detalle.

Le resultar til leer el Captulo 3 del texto antes de hacer esta prctica de laboratorio. El Captulo
3 es bastante tcnico, y es posible que deba trabajar tanto en este laboratorio como en ese
captulo antes de comprender realmente alguno de ellos.

Este laboratorio incluye las siguientes secciones:

1. El applet xComputer
2. Programas de escritura para xComputer
3. Control de velocidad y estilo de visualizacin
4. Contar y almacenar
5. Talleres o Ejercicios
1. El applet xComputer

Comience haciendo clic en este botn para iniciar el applet xComputer en su propia ventana:

El applet xComputer est dividido en tres secciones. El tercio derecho del applet representa la
memoria principal de la computadora simulada. Esta seccin del applet muestra las 1024
ubicaciones en la memoria de xComputer. Estas ubicaciones estn numeradas del 0 al 1023. Cada
lnea en la memoria muestra un nmero de ubicacin (en azul) y el valor almacenado en esa
ubicacin. Cuando el programa se inicia por primera vez, la memoria solo contiene ceros. La barra
de desplazamiento se puede usar para ver cualquier parte de la memoria.

La seccin "Control" del applet se usa para interactuar y controlar el xComputer. Por ejemplo,
puede usar cuadros y botones de entrada de texto en la seccin Control para ingresar programas y
datos en la memoria del xComputer. Una vez que un programa ha sido cargado en la memoria,
puede decirle al xComputer que lo ejecute. Aprender a controlar el xComputer mientras trabaja en
el laboratorio.

La seccin "Registros" del applet muestra los ocho registros de xComputer. Recuerde que un
registro es simplemente una unidad de memoria en la CPU que contiene datos que se utilizan
directamente en los clculos de la CPU. Cada registro juega un papel particular en la ejecucin de
programas por parte de la CPU. Estos roles se describen en detalle en el texto y se ilustrarn
durante el curso de esta prctica de laboratorio, pero aqu, para su referencia, hay un breve
resumen:

Los registros X e Y contienen dos nmeros binarios de diecisis bits que la ALU utiliza como
entrada. Por ejemplo, cuando la CPU necesita agregar dos nmeros, debe ponerlos en los
registros X e Y para que la ALU pueda usarlos.

El registro de AC es el acumulador. Es la "memoria de trabajo" de la CPU para sus clculos.


Cuando la ALU calcula un resultado, ese resultado se almacena en la AC. Por ejemplo, si se
agregan los nmeros en los registros X y/o Y, la respuesta aparecer en la AC. Adems, los datos
se pueden mover de la memoria principal al AC y de la AC a la memoria principal.
El registro FLAG almacena el bit "carry-out" o de acarreo producido cuando la ALU agrega dos
nmeros binarios. Adems, cuando la ALU realiza una operacin de desplazamiento a la izquierda
o de desplazamiento a la derecha, el bit adicional que se desplaza al final del nmero se almacena
en el registro de FLAG.

El registro ADDR especifica una ubicacin en la memoria principal. La CPU a menudo necesita
leer valores de la memoria o escribir valores en la memoria. Solo se puede acceder a una
ubicacin en la memoria en cualquier momento. El registro ADDR especifica esa ubicacin.
Entonces, por ejemplo, si la CPU necesita leer el valor en la ubicacin 375, primero debe
almacenar 375 en el registro ADDR. (Si activa la casilla de verificacin "Autoscroll" debajo de la
pantalla de la memoria, la memoria se desplazar automticamente a la ubicacin indicada por el
registro ADDR cada vez que cambie el valor en ese registro).

El registro de PC es el contador del programa. La CPU ejecuta un programa obteniendo


instrucciones una a una de la memoria y ejecutndolas. (Esto se denomina ciclo de bsqueda y
ejecucin). La PC especifica la ubicacin en la memoria que contiene la siguiente instruccin que
se ejecutar.

El IR es el registro de instrucciones. Cuando la CPU obtiene una instruccin de programa de la


memoria principal, aqu es donde lo pone. El IR mantiene esa instruccin mientras se est
ejecutando.

El registro COUNT cuenta los pasos en un ciclo de bsqueda y ejecucin. Le toma varios pasos
a la CPU para obtener y ejecutar una instruccin. Cuando COUNT es 1, hace el paso 1; cuando
COUNT es 2, hace el paso 2; Etctera. El ltimo paso es siempre restablecer COUNT a 0, para
prepararse para comenzar el siguiente ciclo de bsqueda y ejecucin. Esto es ms fcil de
entender despus de verlo en accin. Recuerde que como el registro COUNT cuenta 0, 1, 2, ...,
solo se est ejecutando un programa de lenguaje de mquina.

Aprender cmo funciona xComputer dndole un programa corto y viendo cmo ejecuta ese
programa. Un programa es una secuencia de instrucciones de lenguaje ensamblador. Debes
ingresar las instrucciones en la memoria del xComputer. Pero primero, asegrese de que el cuadro
de entrada "addr" en el rea de Control del applet contiene un cero. El nmero en este cuadro
especifica la direccin en la memoria donde se almacenar la instruccin que escribe. Luego,
escriba las siguientes instrucciones en el cuadro de entrada de "datos". Presione regresar despus
de cada instruccin (o, de forma equivalente, haga clic en el botn "Datos a la memoria"):
lod-c 17

add-c 105

sto 10

hlt

Cuando presiona return, una instruccin se traduce a una instruccin de lenguaje de mquina y se
almacena en la memoria del xComputer. (En realidad, ver un nmero en la memoria, en lugar de
las instrucciones del lenguaje en ensamblador que escribi. Por ejemplo, la instruccin "lod-c 17"
est representada por el nmero 25617.) Tenga en cuenta que cuando presiona return, el nmero
en el cuadro de entrada "addr" se incrementa automticamente en uno, para prepararse para
almacenar la siguiente instruccin que escriba en la siguiente ubicacin de memoria.

La primera instruccin de este programa, lod-c 17, le dice al xComputer que cargue la constante 17
en el acumulador. La segunda instruccin, add-c 105 le dice a la computadora que agregue la
constante 105 a cualquier nmero que est en el acumulador y que devuelva el resultado al
acumulador. El sto 10 hace que la computadora copie los contenidos del acumulador en la
ubicacin de la memoria 10. Y la instruccin final, hlt, le dice a la computadora que se detenga. El
efecto neto es que el programa agrega 105 a 17 y almacena la respuesta en la ubicacin 10.
Despus de que el programa se detiene, puede buscar en la memoria en la ubicacin 10 para
encontrar la respuesta.

Ahora, cmo haces que la computadora ejecute el programa? Todo lo que hace la computadora
es buscar las instrucciones de la memoria y ejecutarlas. El valor almacenado en el registro de la
PC le dice a la computadora a qu ubicacin de memoria ir para obtener la siguiente instruccin.
Antes de ejecutar el programa, debe asegurarse de que comenzar con la primera instruccin del
programa, que est en la ubicacin de la memoria cero. Esto significa que el registro de PC debe
contener un cero. Si este no es el caso, puede poner un cero en la PC haciendo clic en el botn
"Establecer PC = 0" en la seccin de Control de la aplicacin. (Cero es el valor inicial ms comn
para la PC, pero si desea comenzar en una ubicacin diferente, puede escribir la direccin de esa
ubicacin en el cuadro de entrada "addr" y hacer clic en el botn "Agregar a PC").
Una vez que haya comprobado el valor del registro de la PC, puede simplemente hacer clic en el
botn "Ejecutar" para ejecutar el programa. Deberas pensar que esto enciende el reloj de
xComputer. Tan pronto como lo haga, las estrellas del reloj marcan, el valor en el registro COUNT
comienza a cambiar, y el ciclo de bsqueda y ejecucin contina. Esto continuar hasta que la
computadora ejecute una instruccin HLT o hasta que la detengas.

Deberas probar esto ahora. Asegrese de que la PC contenga un cero. Luego, haz clic en el botn
"Ejecutar". Si ha hecho todo correctamente, el programa se ejecutar. Vers que suceden cosas,
aunque probablemente no las entiendas realmente en este punto. Pero notar que las
instrucciones en el programa aparecen una a una en el registro IR a medida que se ejecutan.
Finalmente, la instruccin HLT se ejecutar y la computadora dejar de funcionar. La respuesta
correcta al clculo, 122, estar en la ubicacin de la memoria 10. Esto le da la idea general de
cmo los programas son ejecutados por xComputer. Tu objetivo en el resto del laboratorio es
comprender los detalles.

Despus de ejecutar el programa una vez, debe ejecutarlo de nuevo. Primero, reinicie la PC a
cero. Esta vez, en lugar de usar el botn "Ejecutar", use el botn "Ciclo". Al hacer clic en "Cycle", la
computadora se ejecuta, pero solo hasta que el valor en el registro COUNT sea 2. En ese punto, la
computadora acaba de cargar una nueva instruccin en el IR y est a punto de ejecutar esa
instruccin. Cuando vuelva a hacer clic en "Ciclo", la computadora ejecutar esa instruccin y
buscar la siguiente instruccin. Por lo tanto, el botn "Ciclo" le permite pasar por un programa,
una instruccin a la vez. Intentalo! Siga haciendo clic en "Ciclo" hasta que llegue a la instruccin
HLT.

Finalmente, puede ejecutar el programa una vez ms, esta vez con el botn "Paso". Al hacer clic
en el botn "Paso", la computadora realiza un solo paso en el ciclo de bsqueda y ejecucin.
Tienes que hacer clic varias veces para ejecutar una instruccin en el programa. Una vez ms,
debe reiniciar la PC a cero. Luego, haga clic en su programa con el botn "Paso" hasta que se
ejecute el HLT.
2. Escribiendo Programas para xComputer

Debera estar claro que ingresar un programa largo en xComputer tipendolo en el cuadro de
"datos" sera muy tedioso y propenso a errores. Si accidentalmente omite una instruccin, por
ejemplo, tendr que volver a escribir la mayora del programa! Afortunadamente, el applet
xComputer le permite escribir un programa completo en un rea de entrada de texto separada y
luego traducir todo el programa a la vez y almacenarlo en la memoria de xComputer. Esto tiene
tres ventajas: Puede editar el programa en la ventana, por ejemplo, insertando una nueva
instruccin. Puede (si la configuracin de su navegador web lo permite) guardar el programa en un
archivo, para que nunca tenga que volver a escribirlo. Y puedes usar etiquetas en tu programa. Las
etiquetas son una poderosa tcnica de programacin; se describen en el Postscript al Captulo 3
en el texto. No estn cubiertos en este laboratorio, pero sern una parte importante del prximo
laboratorio.

Si desea escribir un nuevo programa, simplemente haga clic en el botn "Nuevo programa" en el
rea de control del applet. Alternativamente, puede seleccionar "[Nuevo]" en el men emergente en
la parte superior del applet. La pantalla de la computadora desaparecer y ser reemplazada por
un rea de entrada de texto cuando pueda escribir su programa. Ingrese el siguiente programa en
esa rea de texto:

lod-c 1

sto 12

lod 12

inc

sto 12

jmp 2
Este programa cuenta. Comienza colocando el nmero 1 en la ubicacin de la memoria 12, y luego
agrega uno al nmero en esa ubicacin una y otra vez, para siempre. (Vers esto en accin en un
momento.) Aqu hay varias instrucciones nuevas. Lod 12 le dice a xComputer que copie el nmero
de la ubicacin de la memoria 12 en el acumulador. (Observe cmo esto difiere de lod-c 12, que
pone el nmero 12 en s mismo en la CA, en lugar del nmero almacenado en la ubicacin de la
memoria 12.) La instruccin inc agrega uno al valor en el acumulador. Y jmp 2 es una instruccin
de salto que enva la computadora a la ubicacin 2.

Despus de escribir este programa, haga clic en el botn "Traducir" que se encuentra debajo del
rea de texto, en el extremo izquierdo de una fila de botones. Si el programa contiene algn error,
se mostrar un mensaje de error. Si ha escrito el programa correctamente, se traducir al lenguaje
de la mquina y se almacenar en la memoria del xComputer. El rea de texto ser reemplazada
por la pantalla de la computadora, y la computadora estar lista para ejecutar el programa. Haga
clic en el botn "Ejecutar" para ejecutar el programa y ver cmo funciona. Puede ver como la PC
cuenta las instrucciones en el programa. Ver las instrucciones de lenguaje ensamblador a medida
que se cargan en el IR. Y puede observar que el valor en la ubicacin de la memoria 12 cambia de
1 a 2 a 3 a 4, y as sucesivamente. Este programa se ejecutar para siempre, si lo permite.

Trabajar con este pequeo programa durante la mayor parte del resto del laboratorio. Su objetivo
es comprender cmo funciona xComputer y apreciar el ciclo de bsqueda y ejecucin.
3. Control de velocidad y estilo de visualizacin de la memoria

Al dejar que se ejecute el programa de conteo, puede intentar variar la velocidad a la que la
computadora ejecuta las instrucciones cambiando la configuracin en el men emergente de
velocidad (ubicado justo debajo del botn "Ejecutar"). Las velocidades ms bajas le permiten ver lo
que est Las velocidades ms altas permiten que la computadora haga ms cosas. A la velocidad
ms alta, los registros no se muestran, de modo que la computadora puede ejecutarse lo ms
rpido posible, sin actualizar la pantalla de registro todo el tiempo.

Cuando haya tenido suficiente de esto, detenga el programa y experimente con el men emergente
de estilo de visualizacin de la memoria, que se encuentra justo encima de la pantalla de
desplazamiento de la pantalla. Este men le permite seleccionar cmo le gustara ver el contenido
de la memoria principal. (Tambin hay un men emergente similar para configurar el estilo de
visualizacin del registro.) Por supuesto, los contenidos reales de la memoria son nmeros
binarios, pero un nmero binario puede significar muchas cosas, dependiendo de cmo se
interprete. Cuando se inicia por primera vez el applet, se configura para mostrar el contenido de la
memoria como enteros decimales ordinarios en el rango de -32768 a 32767. Esta es solo una
posible interpretacin de los nmeros binarios que se almacenan en la memoria. Usando el men
emergente de estilo de visualizacin, puede seleccionar entre seis interpretaciones diferentes:

La pantalla de Instrucciones muestra el contenido de cada ubicacin de memoria como una


instruccin de lenguaje ensamblador. En este estilo de visualizacin, debera ver el programa de
conteo original en las ubicaciones de memoria del 0 al 5. La mayora de las otras ubicaciones
contienen Agregar 0, que resulta ser la instruccin en lenguaje ensamblador codificada por el
nmero binario de 16 bits 0000000000000000. cada nmero binario de 16 bits corresponde a una
instruccin legtima en lenguaje ensamblador, es posible que vea algunas cosas divertidas en este
estilo de visualizacin).

Las pantallas Enteros y Ints sin signo muestran enteros decimales ordinarios. La diferencia es
que los enteros de 16 bits con signo estn en el rango de -32768 a 32767, mientras que los
enteros de 16 bits sin signo estn en el rango de 0 a 65535. (En cualquier caso, hay 216 valores
posibles diferentes; es solo una cuestin de cmo se interpretan. Consulte la Subseccin 2.2.3 en
el texto.)

La pantalla Binaria muestra un nmero binario de 16 bits en cada ubicacin de memoria; este
estilo de visualizacin es el ms cercano al contenido fsico real de la memoria.
La pantalla ASCII interpreta cada nmero de diecisis bits en la memoria como compuesto por
dos cdigos de caracteres ASCII de ocho bits, y muestra los dos caracteres. Algunos nmeros
binarios de ocho bits no representan caracteres ASCII visibles. Estos nmeros se muestran en la
forma <#N>, donde N es el nmero, en forma decimal. Por lo tanto, por ejemplo, el nmero binario
de 16 bits 0000000000000000 se muestra en el estilo de visualizacin ASCII como <# 0> <# 0>.

La pantalla de grficos es muy diferente de los dems. Muestra toda la memoria a la vez. Cada
bit en la memoria, las 16 veces 1024 de ellos, est representado por un pxel en la pantalla. Ese
pxel es blanco si el bit es cero y es negro si el bit es uno. Si elige la pantalla de grficos ahora, la
memoria ser casi completamente blanca, excepto por unos pocos puntos negros en la parte
superior que representan el programa que ingres en la memoria.

Puede probar los diferentes estilos de visualizacin de memoria. Los usar en el ejercicio 1 al final
del laboratorio. Debo sealar que cuando ingresa informacin en la Memoria usando el cuadro de
entrada de "datos" en el rea de Control del applet, puede escribir la informacin en varios de los
estilos de visualizacin anteriores, as como tambin en el lenguaje ensamblador. Puede, por
ejemplo, ingresar nmeros comunes en el rango -32768 a 65535. Puede ingresar un nmero
binario, pero debe precederlo por la letra B. Por ejemplo: B1011010111. Finalmente, puede
ingresar uno o dos caracteres ASCII, pero debe precederlos con una comilla. Por ejemplo: '# 1 o' A.
Tendr que hacer esto para el Ejercicio 1.

Hay otra opcin en el men emergente: "Cables de control". Este estilo de visualizacin no muestra
memoria en absoluto. Si lo selecciona, la pantalla de la memoria de la computadora se
reemplazar por una lista de cables de control. Estos cables de control son la clave para entender
cmo funciona el xComputer. La idea bsica es que encender y apagar los cables de control hace
que las cosas sucedan en la computadora. Se encienden y apagan mediante un circuito de control
y controlan el funcionamiento de otros componentes de la CPU. Cada cable de control tiene una
funcin. Al encender ese cable, ocurre algo, como mover un nmero de la memoria principal al
registro de CA o agregar los nmeros en los registros X e Y y poner la respuesta en la CA. Ejecutar
un programa es solo cuestin de encender y apagar los cables correctos en la secuencia correcta.

La pantalla "Cables de control" le permite ver qu cables se encienden durante cada paso en la
ejecucin de una instruccin. Intntelo con la instruccin lod-c 17, haciendo lo siguiente: Primero,
ingrese la instruccin "lod-c 17" en alguna ubicacin de memoria, y configure la PC en la direccin
de esa ubicacin. Luego, configure el estilo de visualizacin en "Cables de control". Luego, use el
botn "Paso" para ir paso a paso por el ciclo de bsqueda y ejecucin. Esto es lo que ver:
Primero haga clic en el botn "Paso": COUNT se convierte en 1, lo que indica que se est
realizando el primer paso en el ciclo de bsqueda y ejecucin. El cable de control Load-addr-from-
PC se enciende y el valor en el registro de PC se copia en el registro ADDR. (El registro de PC
indica qu ubicacin de memoria contiene la siguiente instruccin; ese nmero de ubicacin debe
copiarse en el registro de ADDR para que la computadora pueda leer esa instruccin de la
memoria).

Segundo clic: COUNT pasa a ser 2. El cable de control Load-IR-from-Memory se enciende y una
instruccin se copia de la memoria al IR. (El registro ADDR determina qu instruccin se lee). En
este caso, la instruccin es Lod-c 17.

Tercer clic: COUNT se convierte en 3. El cable de control Increment-PC se enciende, y el valor


en el registro de la PC se incrementa en 1. Normalmente, esto prepara la PC para el prximo ciclo
de bsqueda y ejecucin. Esto completa la parte de "recuperacin" del ciclo de bsqueda y
ejecucin. Los pasos restantes en el ciclo dependen de la instruccin particular que se comienza a
ejecutar (en este caso, lod-c 17).

Cuarto clic: COUNT se convierte en 4. El cable de control Load-AC-from-IR est encendido. La


parte de datos de la instruccin en el registro IR, se copia en el acumulador. En este caso, el valor
es 17. Este es el nico paso necesario para ejecutar la instruccin lod-c 17.

Quinto clic: COUNT se convierte en 5, pero solo brevemente. El cable de control Set-COUNT-to-
Zero se enciende e inmediatamente el valor de COUNT se reinicia a 0. Se acaba un ciclo de
bsqueda y ejecucin. (En el siguiente clic, COUNT volvera a ser 1 y comenzara el siguiente
ciclo.

Al hacer clic en el botn "Paso" en este ejercicio, en realidad est simulando el papel del reloj del
xComputer. Cada clic tiene el mismo efecto que un tic del reloj, y usted est conduciendo el clculo
en su tiempo libre de la misma manera que el tic-tac del reloj generalmente conduce la
computadora con su tic-tac regular.
4. Contar y almacenar

Para la ltima parte del laboratorio, considere el siguiente programa, "CountAndStore". Este
programa debera haber sido cargado automticamente por el applet xComputer, por lo que no
tendr que escribirlo. Simplemente seleccinelo en el men emergente en la parte superior del
applet y haga clic en el botn "Traducir" para almacenarlo en la memoria del xComputer. Tenga en
cuenta que en un programa xComputer, todo lo que viene despus de un punto y coma en una
lnea es un comentario, que est destinado a lectores humanos. Los comentarios son ignorados
por la computadora.

lod-c 1 ; Start with a 1 in location 12

sto 12

lod 12 ; This instruction is stored in location 2

inc

sto 13 ; This instruction is stored in location 4

lod 2 ; Add 1 to the number in location 2

inc

sto 2

lod 4 ; Add 1 to the number in location 4

inc

sto 4

jmp 2 ; Go back to the instruction in location 2


Este programa es similar al programa de conteo simple que examin anteriormente en el
laboratorio, excepto que el nmero para el segundo comando sto ha sido cambiado, y se han
insertado seis nuevas instrucciones antes del comando jmp. Las instrucciones "lod 2, inc, sto 2"
agregan 1 al nmero almacenado en la ubicacin de memoria 2. Pero si observa lo que est
almacenado en esa ubicacin, encontrar la instruccin lod 12, que es parte del programa. Esto
parece extrao. Qu sucede cuando "agregas 1" a una instruccin?

Recuerde que las instrucciones del lenguaje de la mquina son solo nmeros. No hay problema
con agregar 1 a un nmero. Sin embargo, el significado de la instruccin representada por el
nmero cambia. Si agrega 1 al nmero que codifica "lod 12", el significado de la respuesta es
"lod13". Si quiere entender exactamente por qu esto es cierto, mire las representaciones binarias
de las instrucciones del lenguaje de la mquina. (Los detalles se dan en la Seccin 3.2 del texto, si
desea verificar all).

Ejecute este programa y vea lo que hace. Para apreciar completamente este programa, debe
ejecutarlo a "Velocidad ms rpida" con la visualizacin de la memoria configurada en "Grficos".
Puede ver como la memoria se llena gradualmente de nmeros.
5. Talleres Prcticos

Ejercicio 1: puede usar el xComputer para traducir de un tipo de datos a otro ingresndolo en un
formulario en el cuadro de entrada de "datos" y visualizndolo en la memoria de otra forma. Use
este mtodo para hacer las siguientes conversiones y explique brevemente cmo hace cada parte:

Encuentra el cdigo ASCII para el caracter #. (El cdigo ASCII es el nmero entero que
representa este carcter ASCII).

Encuentra el personaje cuyo cdigo ASCII es 99.

Encuentra la representacin binaria de -233.

Encuentre el entero sin signo que tenga la misma representacin binaria que el entero con signo
-233.

Encuentre el entero sin signo que representa la instruccin en lenguaje ensamblador sto 1023.

Ahora, agregue 1 al nmero que representa sto 1023 y encuentre la instruccin de lenguaje
ensamblador representada por el nmero resultante. Por qu recibes una instruccin
completamente diferente? (Nota: haga la adicin usted mismo, no tiene que programar la
computadora para hacerlo!)

Ejercicio 2: en realidad, la memoria de una computadora solo contiene nmeros binarios. El


lenguaje de la mquina, en particular, consiste en nmeros binarios. Traduzca el programa de
conteo, que se repite a continuacin, en los nmeros binarios del lenguaje de mquina, y escriba
un prrafo o dos explicando por qu las computadoras usan nmeros binarios en lugar de algo
ms legible.

lod-c 17

sto 12

lod 12

inc

sto 12

jmp 2
Ejercicio 3: escriba un programa de lenguaje ensamblador que compute 34 - 17 + 103 - 12. La
instruccin para restar una constante del acumulador es subc.

Ejercicio 4: Anteriormente en el laboratorio, se le solicit que realizara la ejecucin de la instruccin


lod-c 17, que le dice a la computadora que cargue el nmero 17 en el acumulador. La instruccin
lod 17 le dice a la computadora que copie los contenidos de la ubicacin de la memoria 17 en el
acumulador. Utilice xComputer para ver cmo se ejecuta esta instruccin paso a paso, tal como lo
hizo anteriormente para el lod-c 17. Ingrese una instruccin lod 17 en la ubicacin de la memoria
cero, y restablezca la PC a cero. Establezca el estilo de visualizacin en "Cables de control".
Luego, use el botn "Paso" para recorrer el ciclo de bsqueda y ejecucin a medida que se ejecuta
la instruccin lod. Escriba lo que sucede durante cada paso. Explica cuidadosamente el propsito
de cada paso en la fase de ejecucin del ciclo (pasos 4 y posteriores). Qu diferencias
encuentras entre la ejecucin de una instruccin lod-c y la ejecucin de una instruccin lod?
Cmo pueden explicarse las diferencias en trminos de lo que hacen las instrucciones?

Ejercicio 5: use el botn "Paso" para rastrear la ejecucin de una instruccin add-c y de una
instruccin add. (Consulte el Ejercicio 4 para obtener instrucciones detalladas sobre cmo hacerlo).
Registre los cables de control que estn encendidos durante cada paso en la parte de ejecucin
del ciclo de bsqueda y ejecucin, es decir, para los pasos 4 y posteriores, y explique
cuidadosamente el propsito de cada uno de esos pasos. Qu diferencias observas entre estas
dos instrucciones? Cmo pueden explicarse las diferencias en trminos de lo que hacen las
instrucciones?

Ejercicio 6: explique con cuidado por qu los primeros tres pasos del ciclo de bsqueda y ejecucin
son siempre los mismos, y por qu no tienen nada que ver con el contenido del registro de
instrucciones.
Ejercicio 7: modifique el primer programa de recuento utilizado en este laboratorio para que cuente
solo de uno a diecisis, detenindose cuando llegue a los diecisis. (El programa se repite a
continuacin.) Para hacerlo, cada vez que pasa el ciclo, debe probar si el nmero es diecisis. Si
es as, salte a una instruccin HLT al final del programa. Probar si un nmero es diecisis requiere
dos pasos: primero, reste 16 del nmero y luego pruebe si la respuesta es cero. Use una
instruccin JMZ para probar si la respuesta es cero. (Esto es como una instruccin JMP, excepto
que el salto solo ocurre si el nmero en la CA es cero.) Escriba un prrafo que explique cmo
funciona su programa.

lod-c 1; Este es el programa de conteo original.

sto 12

lod 12

inc

sto 12

jmp 2

Hlt; Agregue una instruccin de alto al final.

Ejercicio 8: describa qu hace el programa "CountAndStore", que encontr anteriormente en el


laboratorio. Discute cmo funciona con cierto detalle. Para hacer un buen trabajo en este ejercicio,
tendr que pasar por varias ejecuciones del ciclo en el programa y estudiar cmo funciona.

Ejercicio 9: Comenta lo que aprendes del programa "CountAndStore" sobre "datos" e


"instrucciones" y la relacin entre ellos. (La memoria de una computadora puede contener tanto
datos como instrucciones. Cmo distingue la computadora entre ellos? Lo hace?)

Ejercicio 10: ejecute el programa "CountAndStore" a "Velocidad ms rpida" con la pantalla


configurada en "Grficos". Si deja que el programa se ejecute el tiempo suficiente, se detendr.
Cmo es esto posible, ya que el programa no contiene instrucciones HLT? Para resolver esto,
tendrs que hacer un trabajo de detective una vez que el programa termine. Mire lo que sucedi
con el programa en la memoria de la computadora. Intenta ser tan explcito y completo con tu
explicacin como sea posible. sta no es una pregunta fcil. (Sugerencia: algo que hiciste en el
Ejercicio 1 resulta relevante aqu).