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.
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)
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
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.