como generar numeros aleatorios en ensamblador?

Angel Aguilar
03 de Noviembre del 2004
agradeciendo de antemano. Apenas estoy empezando a aprender este lenguaje, pero me acaba de surgir un problemilla sobre como generar numeros aleatorios por ejemplo entre 0 y 70

dar?
03 de Noviembre del 2004
Te pod茅s basar en la API GetTickCount, que devuelve la cantidad de milisegundos que han pasado desde que inici贸 Windows. Como este valor cambia constantemente, pod茅s leerlo y de alguna forma convertirlo en el intervalo que necesit谩s. Por ejemplo, pod茅s calcular el m贸dulo (o resto) de la divisi贸n entre el valor de GetTickCount y 70, que obviamente te va a dar un n煤mero mayor o igual a 0 y menor a 70.
Para eso utiliz谩 la instrucci贸n 'div'.

Yoel Ocmin
03 de Noviembre del 2004
Si quieres hacerlo en DOS, puedes usar el servicio 2CH de la Int 21h, que te devuelve, la hora del sistema, y tomar como referencia la cantidad de milisegundos que se guardan en el registro DL
la sintaxis es:
Mov ah,2Ch
Int 21h

como respuesta tienes en:
CH->Horas
CL->Minutos
DH->Segundos
DL->Centesimas de Segundo (Max 99)

AHORA Si ha ese numero le quitas el Ultimo Bit, tendrias, tendrias Un Max de 35, y si ha eso lo multiplicas por 2, ya tienes un numero aleatorio , solo que seria par que va de 0 - 70


Edwin
03 de Noviembre del 2004
Yo tambien necesito generar numeros aleatorios pero no deben utilizar el relog, porque ya lo uso para otra parte de mi residente y ocupo un algoritmo que los genere independiente del relog por si alguien sabe y me pueda ayudar seria mi salvacion gracias