Programación General > ASM (Ensamblador)
Random/rand en ASM?
Continue:
Hola!
Quisiera saber dónde se realiza el cálculo de las funciones "random/rand" que están presentes en tantos lenguajes de programación.Yo sé solo lo que he leido y he leido que el random genera números pseudoaleatorios y en realidad son números calculados.Pero también he leido que algúnos de los lenguajes a la hora de compilar un .exe pasan por comandos ASM para pasar a código maquina.Dónde se calcúla el rand de C por ejemplo,¿en una de las funciones en las bibliotecas que incluimos en el principio? o llamando una función en ASM o tal vez en un chip preprogramado en la placa madre?
Y si está presente en ASM esa función,cómo la llamo?Espero no tener que escribir se la uno mismo :wacko: por ser así,mejor la copio de otro sitio y la pego en mi ensamblador :P
Gracias por calmar esta cuiosidad mia!
Enko:
--- Código: ASM --- proc Random Range: DWORD ;get pseudo random namber mov eax, [Range] ;[RandSeed] es variable global que se puede cambiar xor edx, edx ;para modificar el patron del random imul edx,[RandSeed],08088405H ;08088405h una constante, algunas cifras se pueden cambiar, otras no inc edx mov [RandSeed],edx mul edx mov eax, edx retendp Ese codigo es de FASM. La funcion es una adaptacion del Random de Delphi.
[RandSeed] es una variable global que se usa como semilla de los numros aleatorios. Una buena manera de sacar la semilla en Windows, es obtener el tiempo con GetTime
http://www.wowwiki.com/API_GetTime
http://foros.solocodigo.com/viewtopic.php?t=8122
Continue:
Gracias por la respuesta,Enko!
esse:
Disculpa este codigo lo utilice tambien en MASM pero no pude hacer q funcione siempre me devuelve cero en eax, le de el rango que le de, como tendria q ser??
Gracias
Eternal Idol:
¿Estas inicializando RandSeed? Publica tu codigo completo sino ...
Navegación
[#] Página Siguiente
Ir a la versión completa