Raiz Cuadrada En Assembler Microcontrolador Freescale

Páginas: 6 (1339 palabras) Publicado: 18 de mayo de 2012
LABORATORIO N°1 : HERRAMIENTAS DE TRABAJO
Bryan Montes Castañeda 20091005042 (Créditos) Sebastian Eduardo Villalobos Bernal 20091005036 (Horas)
Universidad Distrital Francisco José de Caldas

1. Descripción del problema :
Diseñar un programa que calcule alguno de los catetos o la hipotenusa de un triangulo rectángulo. Cuando se desee calcular la hipotenusa se ingresaran los catetos deltriangulo rectángulo en las posiciones de memoria de CAT1 y CAT2 ubicadas en la memoria RAM del microcontrolador, el valor para cada caso será un numero decimal entre 01 y 99 y en la posición de memoria HIP el numero 00, el resultado del cálculo se almacenara en la posición de memoria HIPO, que tendrá 3 dígitos enteros y dos decimales. Cuando se desee calcular alguno de los catetos del triangulo seingresara el valor de la hipotenusa y del otro cateto en las posiciones de memoria de CAT1 e HIP en la memoria RAM del microcontrolador el valor para cada caso será un numero decimal entre 01 y 99 y en la posición de memoria CAT2 el numero 00, el resultado del cálculo se almacenara en la posición de memoria CATE, que tendrá 2 dígitos enteros y dos decimales.

2. Análisis del problema :
Pararealizar el programa que realice la solución del problema anterior mente planteado es necesario inicialmente realizar un diagrama de flujo en el que podamos visualizar y nos dé la idea del como poder iniciar la solución del problema: Las subrutinas 'Hallar hipotenusa' y 'Hallar cateto' básicamente realizan las operaciones correspondientes con el teorema de Pitágoras : HIP² = CAT1²+CAT2² para calcular elcuadrado de la variable que se quiere hallar y llamar la subrutina de calculo de la raíz.

Inicialmente es necesario que el programa inicialice cada variable y escoja si tiene que hallar A continuación se muestra las subrutinas: hallar la hipotenusa o uno de los catetos,para esto, según hipotenusa y hallar cateto. el problema solo es necesario probar cual de las variables es cero y de estamanera se sabrá que se debe calcular.

Con el diagrama de flujo siguiente se muestra como se realiza la subrutina que va a resolver el problema de cómo sacarle la raíz cuadrada a un numero. Este diagrama de flujo muestra el método del algoritmo babilónico, el cuan consiste en iterar una variable N realizando la operación: 1 X N ← ( +N ) 2 N donde X es la variable a la cual se le quiere hallar laraíz, N puede ser inicializado en cualquier valor, y con la iteración este se ira corrigiendo hasta aproximarse a la raíz.

3. Diseño :
Implementación del Código Determinación de lo que se va a calcular: Antes de determinar lo que se va a comparar (cateto o hipotenusa) es necesario declarar las variables que se utilizaran. Después de haber inicializado la RAM se declaran las variables yaplanteadas en el análisis del problema y que serán utilizadas durante el programa:
CAT1 DS 1 CAT2 DS 2 HIPO DS 2 HIP DS 1 OP1 DS 2 OP2 DS 2 RES DS 2 CUADRADO DS 2 N DS 1 BB DS 1 RESIDUO DS 1

HALLARHIP: LDA LDX MUL STX STA LDA LDX MUL STX STA JSR MOV MOV JSR MOV MOV JMP HALLARCAT: LDA LDX MUL STX STA LDA LDX MUL STX STA JSR MOV MOV JSR MOV MOV JMP

CAT1 CAT1 OP1 OP1+1 CAT2+1 CAT2+1 OP2 OP2+1 SUMARES,CUADRADO RES+1,CUADRADO+1 RAIZ RES,HIPO RES+1,HIPO+1 FINAL HIP HIP OP1 OP1+1 CAT1 CAT1 OP2 OP2+1 RESTA RES,CUADRADO RES+1,CUADRADO+1 RAIZ RES,CAT2 RES+1,CAT2+1 FINAL

El código para determinar lo que se va a calcular deberá si la variable HIP es cero, bifurcar a la rutina de calculo descrita, o probar la variable CAT2 y bifurcar a la rutina respectiva; además es necesario inicializar HX ydeshabilitar el modulo COP :
MAIN: BSET 0 , CONFIG1 CLRH CLRX TST HIP BEQ HALLARHIP TST CAT2+1 BEQ HALLARCAT JMP MAIN

Los cuadrados de cada numero se almacenan en los operadores OP1, OP2 para realizar la suma o la resta según el caso y el resultado retornado por las subrutinas se almacena en la variable RES. Estas subrutinas se muestran a continuación:
SUMA: LDA ADD STA LDA ADC STA RTS OP1+1...
Leer documento completo

Regístrate para leer el documento completo.

Estos documentos también te pueden resultar útiles

  • Microcontroladores Freescale
  • La raiz cuadrada
  • Raiz cuadrada
  • RAIZ CUADRADA
  • La Raiz Cuadrada
  • Raiz cuadrada
  • la raiz cuadrada
  • Raiz Cuadrada

Conviértase en miembro formal de Buenas Tareas

INSCRÍBETE - ES GRATIS