Zona HTML Zona Java Zona PHP Zona ASP Zona Bases de datos
Inicio > Foros > Ensamblador > Raiz cuadrada
-Foros de debate

Ensamblador
Lista de foros | Lista de mensajes de este foro

Privacidad: Recuerde que la información escrita en los foros de programación es 100% pública y que su ip será registrada asociada a su mensaje. Si encuentra un mensaje fuera de lugar, por favor, notifiquelo para su revisión y eliminación.

Raiz cuadrada
Enviado por Kjelling el día 19 de junio de 2004

Hay alguna instruccion para hacer una raiz cuadrada?? Es k estoy intentando hacerlo, me parece interesante para un trabajo, pero me gustaria saber si ya hay una amnera para hacerlo, pork entonces mi trabajo carecería de mucho sentido.

 
Re: Raiz cuadrada
Enviado por tanis el día 23 de junio de 2004

no hay instrucción en ensamblador.
hay dos métodos: el mas sencillo es el de la resta. el otro no me acuerdo ahora.
EL método de la resta calcula la raiz aproximada del número
hay que restar 1, luego 3, 5, 7, 9, etc. hasta que ya no se pueda restar.
la cantidad de restas hechas al número representa el resultado de la raíz cuadrada aproximada (sin fracción)

 

Re: Raiz cuadrada
Enviado por ProGmaQ el día 1 de julio de 2004

Bueno eso es emular la raiz cuadrada, pero si tienes un 486 DX o superior, trae coopresador matematico instalado que creo que dispone la funcion FSQR o algo similar que no es emulada, y la trabaja el coprocesador

Un saludo!

 
Re: Re: Raiz cuadrada
Enviado por BlackCat el día 27 de octubre de 2004

En ensamblador en realidad es muy sencillo, basta con Ejecutar un desplazamiento a la izquierda (siempre y cuando no ocurra un desbordamiento).

Por ejemplo:

2 = 00000010 <-MOV AL, 2

con el corrimiento a la izquierda seria:
4 = 00000100 <-SHL AL, por ejemplo.

en un registro de 1 byte, esto funcionaria mientras el numero estuviera dentro del rango de 0-128, es decir, mientras se pueda expresar con 7 bits. En un registro de 2 bytes, funcionaria con un numero que se pueda expresar con 15 bits... es una funcion limitada, pero es muy util y facil de implementar.

 
Re: Re: Re: Raiz cuadrada
Enviado por cjerk el día 2 de noviembre de 2004

Lo que comentas no es para hacer raices cuadradas sino para multiplicar/dividir por potencias de 2 que no es lo mismo.

Para hacer raices cuadradas o usas metodos numericos o las instrucciones del coprocesador como ya han indicado antes.

Un saludo.

 

Re: Re: Re: Raiz cuadrada
Enviado por andromeda el día 13 de noviembre de 2004

Vos, esa es una multiplicación por dos, eso no es ni el cuadrado ni la raíz.

 



Re: Raiz cuadrada
Enviado por andres el día 25 de enero de 2005

utiliza la funcion sqrt();

 
Re: Raiz cuadrada
Enviado por Prso el día 27 de enero de 2005

pal de arriba

como vay a utilizar la funcion sqrt()
si estas en ensamblador ... xD

 
Re: Re: Raiz cuadrada
Enviado por mctalx el día 5 de febrero de 2005

local dqN :qword ; 8 bytes
local sqrtN :dword ; 4 bytes

; En la direccion de memoria dqN debe estar el número al que se desea extraer la raiz cuadrada

; El resultado se deposita en sqrtN

finit ; inicializar FPU
fild dqN ; Cargar Número
fsqrt ; Raiz cuadrada (parte entera)
fist sqrtN ; Guardar en sqrP32
fwait ; Esperar fpu

; dwN * 100 para un decimal.
; * 10000 para dos decimales

 




Tienda
Patrocinados
 

Copyright © 1999-2006 Programación en castellano. Todos los derechos reservados.
Formulario de Contacto - Datos legales - Publicidad

Hospedaje web y servidores dedicados linux por Ferca Network