UD Web -- ESIDE Ir a la página inicial
Inicio
Realizar una búsqueda en la sede web
Buscar
Ver el mapa de la sede web
Mapa
Salir de la sede web
Salir
 
EJEMPLO 1

Multiplica dos números almacenados en memoria y obtiene su resultado teniendo en cuenta que se puede desbordar. Es decir, el resultado puede ocupar dos posiciones de memoria. Los números a multiplicar están en las posiciones F000H y F001H y el resultado debe quedar en F002H.

MVI 00 D ; inicializamos D (contendrá bits menos significativos del resultado del producto)

MVI 00 E ; inicializamos E (bits de mayor peso del resultado)

LDA F000

MOV A B ;B = (F000). Cargamos en B el multiplicando

LDA F001

MOV A C ; = (F001). Cargamos en C el multiplicador

SUMA CPI 00

BEQ TERMINA ; si el multiplicador C ha llegado a O, se acaba

MOV D A

ADD B

MOV A D ; D = D + B (resultado = resultado + multiplicando)

BC DESBOR

JMP FIN_DE

DESBOR INR E ;.como ha habido desborde, E = E + 1

FIN_DE MOV C A

SUI 01

MOV A C ; decrementamos multiplicador: C = C - 1

JMP SUMA

TERMINA MOV D A ; decrementamos multiplicador: C = C - 1 STA F002 ; (F002) = D

MOV E A

STA F003 ; (F003) = E

Se utilizan las instrucciones STA o LDA cuatro veces a lo largo del programa, y utilizan como operando cuatro direcciones de memoria distintas, por lo que se van a declara cuatro variables. Si se quiere también se pueden utilizar las direcciones directamente en vez de variables. En este caso se utilizarán variables.

Se supone que se quiere cargar el programa a partir de la dirección 0001H.

Después de compilar, el código resultado es el siguiente. Se puede ver que a pesar de no haber utilizado la instrucción FIN, el Traduct 2000 la ha incluido automáticamente, poniendo FF en la ultima posición.

Ahora solo queda copiarlo (Ctrl + C) y pegarlo (Ctrl + V) en la ventana Cargar programa del simulador de la Máquina Plus.

Después de pulsar el botón aceptar de la ventana Cargar programa se ve que el programa queda cargado en memoria a partir de la dirección de inicio que se ha indicado.

Una vez cargado el programa se puede dar paso a la simulación del programa. Se empieza por una simulación a nivel de microinstrucción pulsando el botón play.

Como se puede observar en la imagen anterior se ha ejecutado el primer estado correspondiente a esta instrucción, en este caso a sido S0. En la barra de estados que se encuentra encima del grafo de estados se puede ver una breve descripción de lo que hace la Maquina Plus en este estado.

Estado:(PC) --> RI

            PC +1 --> PC

Lleva el valor de la dirección apuntada por el Pc al registro de instrucciones(RI) e incrementa el valor del Pc en uno.

Las lineas de control activas aparecen en color rojo, mientras que las lineas de datos involucradas en la microinstrucción se dibujan en azul.

Volvemos a pulsar el botón play y se dibuja en el grafo de estados el siguiente estado que en este caso es el S1.

Estado 1 : Evaluar RI

Lo que realiza la microinstrucción es evaluar el contenido del registro de instrucciones (RI), el código de operación. Continuamos con la simulación de la misma manera, volviendo a pulsar el botón play, con lo cual se dibuja el estado S2.

Estado 2 : Registro 1 --> 2º operado

Se carga el contenido del registro B se carga en el bus de datos.

Se sigue con el mismo procedimiento hasta acabar con todas las microinstrucciones que componen la instrucción que se esta ejecutando en este momento.

Estado 5 : 2º operando --> A

Se carga el contenido del bus de datos en el acumulador.

Una vez visto como funciona la Maquina Plus a nivel de microinstrucción, seguimos simulando el progama del ejemplo1 pero a nivel de instrucción. Para ello pulsamos el botón Forward, que ira simulando el programa instrucción a instrucción.

A su vez se puede comprobar como al pulsar el botón Forward van saltando las posiciones de memoria, según le va indicando el programa ejemplo que se ha cargado.

En la siguiente figura se puede observar el grafo de estados para una de las instrucciones de salto que hay en el programa cargado.

En cualquier momento podríamos consultar los valores de los registros C, D o E simplemente pulsando sobre sus correspondientes botones. También podríamos alterar el valor de cualquiera de los elementos que hay representados en el simulador de la Maquina Plus.

Modificamos por ejemplo el Acumulador poniéndole el valor AA. Esto se realiza pulsando el botón Modificar, con lo cual aparecerá la ventana Modificar, donde pinchando en la opción de el acumulador podremos cambiar su valor, en el capo de texto correspondiente.

Pulsando el botón aceptar de la ventana Modificar vemos como ha cambiado el valor del acumulador.

 

  *   *   *   *   *   *   *   *   *
Ir a la página inicial
Inicio
Realizar una búsqueda en la sede web
Buscar
Ver el mapa de la sede web
Mapa
Salir de la sede web
Salir

E-mail eside-web@deusto.es
ESIDE 1999
Última modificación: Noviembre 1999