Вы находитесь на странице: 1из 4

Baena, Victor y Camacho, Ana

{baenav, anegretem}@uninorte.edu.co
Universidad del Norte

Uso de un microprocesador para sacar la raíz


cuadrada de un número
algoritmo en lenguaje de ensamblador capaz de ser
ejecutado por el simulador Z80 Simulator IDE de la
Resumen—En el presente informe se muestran los compañía OshonSoft.
resultados de la segunda práctica de la asignatura
Microprocesadores, en la cual se busca hallar la raíz cuadrada
de un número cualquiera ubicado en la memoria de datos. A lo A. Algoritmo y lógica
largo del desarrollo, se detalla el problema asignado y los
pasos para solucionarlo, utilizando el simulador del El algoritmo solución del problema es mostrado a
procesador Z80. Durante el transcurso del informe se muestra
y se explica el algoritmo que da solución a la situación
continuación:
presentada.
;--------------Programa Principal----------------------
Índice de Términos—Lenguaje ensamblador
microprocesador, simulador, memoria de datos ORG 0000H
JR INICIO
ORG 0080H
I. INTRODUCCIÓN INICIO:
El microprocesador es un circuito integrado LD A, (0F850H)
encargado de procesar y ejecutar instrucciones
codificadas en lenguaje binario [1]. Se distingue por raiz: LD B, 00FFH
su velocidad interna, que determina el acceso a LD E, 01H
cy: inc B
memoria y el repertorio de instrucciones y programas
dec E
que puede procesar. El microprocesador Z80 realiza
dec E
las funciones de una unidad central de proceso
ADC A, E
(CPU), interpretando las instrucciones que le son
jr C, Loop
dadas mediante el lenguaje de ensamblador [2]. En
este caso, el software es modificado para que el LD(0F860H), B
procesador realice una determinada tarea con un FIN:
algoritmo de programación de bajo nivel. jr FIN
END
Es importante resaltar que el algoritmo empleado
se realizó de manera sencilla utilizando el método ; -------------------------FIN-------------------------------
iterativo, ya que el microprocesador Z80 no puede
realizar operaciones complejas como la
multiplicación y la división de manera directa. Como primera medida se utiliza la función ORG para
dejar el espacio de primera página y comenzar a
II. PLANTEAMIENTO DEL PROBLEMA escribir en la memoria del microprocesador desde la
Se desea emplear un microprocesador para hallar dirección 0080H, en la llamada “memoria de
la raíz cuadrada de un número cualquiera ubicado en programa”. A partir de este valor de memoria se
una dirección de memoria asignada por el usuario. escribe todo el programa a realizar.

III. PLANTEAMIENTO DE LA SOLUCIÓN Luego en el inicio del programa principal se carga el


número al cual se le quiere sacar raíz cuadrada en el
acumulador (A). Dicho número debe ser menor a 255
Para solucionar el problema se desarrollará un ya que este es valor máximo que cabe en 8 bits. Este
valor es extraído de la memoria RAM, es decir, que B. Diagrama de bloques y Diagrama de flujo de la
se encuentra ubicado en una dirección de memoria solución.
entre F800H y FFFFH. Seguidamente, se define a B
como contador a partir del valor FFH y se carga E
con el valor 01H.

Para hallar la magnitud de la raíz cuadrada, se crea


un lazo de instrucciones que se desarrolla de la
siguiente manera: se incrementa el valor de B en uno
y el del registro E se decrementa en dos, dando como
nuevos valores de B y E a, 00H y FFH
respectivamente. Luego, se suman los valores del
acumulador (A), del registro E con la bandera carry
(CF) mediante el comando ADC. Esto da como
resultado un número que sobrepasará los 8 bits
disponibles de almacenamiento del acumulador (A),
y que excede las 255 combinaciones posibles del
registro en un valor igual al número al cual se le
desea hallar la raíz cuadrada.

Después de realizada esta suma se evalúa el estado


de la bandera carry (CF), y si esta se encuentra en 1,
se realizan otra vez las instrucciones del lazo. A
medida que se repite el mismo, el resultado de la
suma realizada con el comando ADC que se guarda
en el acumulador irá disminuyendo hasta llegar a un
número menor a 255, por lo que el valor de la
bandera de Carry se hará 0 y de esta forma saldrá del
ciclo de instrucciones.
El resultado del cálculo de la raíz cuadrada se
encuentra en el registro B, por lo que, para poder
guardarlo en memoria, el valor de B se guarda en A, IV. CONCLUSIONES
y desde ahí se procede a guardar el dato en alguna
dirección de la memoria RAM. En esta práctica, se pudo evidenciar cómo es posible
utilizar un conjunto de operaciones básicas de forma
Este código presenta ventajas y desventajas, siendo no muy compleja y que pueda realizar operaciones
las ventajas que es muy sencillo y ocupa muy poca más complejas con el uso de un microprocesador. Al
memoria de programa, ya que tiene muy pocas presentar un código simple que ocupa poca memoria
instrucciones. Por otro lado, presenta la condición de de programa se puede evidenciar cómo es posible
que ser un algoritmo cuyo tiempo de duración intercambiar complejidad de programa por velocidad
depende de que tan grande sea el número a sacar la de procesamiento, de forma que se puede elegir a
raíz, ya que esta se calcula contando el número de cual darle más relevancia dependiendo de la
iteraciones del programa. También tiene la aplicación a realizar.
limitación de trabajar con números menores a 255,
ya que se utiliza un registro de 8 bits para almacenar
V. REFERENCIAS
este dato. Al ser un código sencillo, se puede adaptar
para utilizar los pares de registros HL y DE para
lograr operaciones con números más grandes y de
esta forma solventar la limitación. [1] R.Tokheim. Fundamentos de los
microprocesadores. McGraw-Hill, 1991.
[2] R. Zaks. Programaciòn del Z80. Anaya
Multimedia, 1990.

Вам также может понравиться