Parallax Propeller P8X32A Manual Del Usuario página 398

Tabla de contenido
Appendix B: Math Samples and Function Tables
rcl
dividendo
djnz
divide_ret
ret
Al igual que la rutina multiplicador la rutina divisora podría recodificarse con una secuencia
CMPSUB
RCL
de 16 bits
+
Haciendo tales cambios, la velocidad frecuentemente se gana a expensas del tamaño del
código.
Aqui hay una rutina que usa la instrucción
'
' Compute square-root of y[31..0] into x[15..0]
'
root
mov
mov
mov
:loop
shl
acumulador
rcl
shl
rcl
shl
or
cmpsub a,x
shr
rcl
djnz
root_ret
ret
Muchas funciones matemáticas complejas pueden realizarse con sumas, restas y
movimientos. Aun con estos ejemplos específicos dados, estos tipos de algoritmos pueden
codificarse de muchas formas para ofrecer una mejor solución.
Tablas Log y Anti-Log ($C000-DFFF)
Las tablas Log y Anti Log son útiles para convertir valores entre su forma numérica y
exponencial .
Cuando los números están codificados en forma exponente, operaciones matemáticas simples
toman un efecto mas complejo. Por ejemplo "sumar" y "restar" se convierten en "multiplicar"
y "dividir", "mover a la izquierda" en "cuadrado" y "mover a la derecha" se convierte en
"raíz cuadrada" y "dividir por 3" producirá una "raíz cúbica". Una vez que el exponente se
convierte a un numero, el resultado será aparente. Este proceso es imperfecto, pero rápido.
Page 398 · Propeller Manual v1.1
x,#1
t,#:loop
DJNZ
para eliminar el
CMPSUB
:
a,#0
x,#0
t,#16
y,#1
wc
'rota los dos bits superiors de y a
a,#1
y,#1
wc
a,#1
x,#2
x,#1
wc
x,#2
x,#1
t,#:loop
'rota c en cociente, mueve
'cicla hasta terminar
'cociente en x[15..0],
'sobrante en x[31..16]
y cortar el tiempo de ejecución en ~1/3.
'reinicia acumulador
'reinicia raíz
'listo para raíz de 16 bits
'determina siguiente bit de raíz
'cicla hasta completar
'raíz cuadrada en x[15..0]
Tabla de contenido
loading

Productos relacionados para Parallax Propeller P8X32A

Este manual también es adecuado para:

Propeller p8x32a-d40Propeller p8x32a-q44Propeller p8x32a-m44

Tabla de contenido