Pregunta

No sé mucho sobre el montaje, pero estoy bastante seguro de que hay instrucciones de raíz cuadrada en el 86? Estoy tratando de obtener una función de raíz cuadrada para trabajar bien en la espuma y el que me he encontrado alguna manera se estanca cuando corro muchas veces.

: sqrt-closer ( square guess -- square guess adjustment)
2dup / over - 2 /
;

: sqrt ( square -- root )
1 begin
sqrt-closer dup
while + repeat
drop nip ;
¿Fue útil?

Solución

Hay una instrucción de raiz cuadrada de coma flotante ( FSQRT ). Esto es bastante rápido, incluso si sólo se necesita una raíz cuadrada de enteros.

Otros consejos

Mira aquí:

http://www.azillionmonkeys.com/qed/sqroot.html

Todo lo que siempre quiso saber acerca de las raíces cuadradas, pero se atrevió a preguntar. Contiene una implementación en lenguaje ensamblador x86.

Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top