como generar numeros aleatorios en ensamblador?
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
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'.
Para eso utiliz谩 la instrucci贸n 'div'.
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
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
