función de raíz cuadrada en Forth usando Asamblea x86?
-
21-09-2019 - |
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 ;
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