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
