Generación de números aleatorios en Z80 (u otro de 8 bits)

Foro dedicado a la programación en todo tipo de sistemas clásicos.
Avatar de Usuario
PabloMarmol
Amstrad PCW 8256
Amstrad PCW 8256
Mensajes: 144
Registrado: 03 Sep 2012, 17:32
Sistema Favorito: Spectrum 16Kb/48Kb
primer_sistema: Spectrum 16Kb/48Kb
Primera consola: Nintendo NES/Clónica
Ubicación: León, España
Gracias dadas: 6 veces
Gracias recibidas: 6 veces

Re: Generación de números aleatorios en Z80 (u otro de 8 bits)

Mensajepor PabloMarmol » 08 Nov 2018, 15:57

Bubu escribió:resulta que R depende del número de instrucciones que se han ejecutado, en cada una se incrementa 1 este registro.
Depende de los bytes que ocupe el opcode, R se incrementará en 1 por cada byte de la instrucción. Las instrucciones cuyo opcode ocupe 2, pues R=R+2, etcétera.
Bubu escribió:Así las cosas, como los pogramas siempre ejecutan exácticamente el mismo número de instrucciones cá vez que los ejecutamos, sisnifica que sieeeempre que leemos la 1ª vez el registro R, siempre tié el mismo valor. Y cuando lo leemos la 2ª vez, siempre tié ese otro valor, etc.

Eso del mismo valor solo pasará si entre lecturas de R no sales de un bucle y ejecutas 128 instrucciones de 1 byte (por ejempo), para que dé una vuelta completa el contador de R, no?
*EDITO*
Vale, ya veo que te referías a leer R al comienzo de un programa, en el caso de que se use un emulador, y que este no aleatorice "el estado de la máquina" al arrancar.

Avatar de Usuario
explorer
Amstrad PCW 8256
Amstrad PCW 8256
Mensajes: 245
Registrado: 11 May 2014, 17:10
Sistema Favorito: Atari ST
primer_sistema: Atari 800XL/600XL
consola_favorita: Atari 2600
Primera consola: Atari 2600
Ubicación: Valladolid, España
Gracias recibidas: 49 veces
Contactar:

Re: Generación de números aleatorios en Z80 (u otro de 8 bits)

Mensajepor explorer » 09 Nov 2018, 04:47

Bubu escribió:De esa rutina no entiendo esta instrucción ld e, (hl). ¿Aónde está apuntando hl? ¿A la ROM? ¿A la RAM? ¿Y si esa zona está llena de ceros o $FF's?

Da igual dónde esté apuntando... A cualquier parte. Es lo que luego se meterá en E para luego sumarlo a HL.
Al final, es realizar un pequeño cálculo para que dé resultados "aleatorios". Esta vez, tomando la propia memoria RAM y ROM como variables.


Volver a “Programación”

¿Quién está conectado?

Usuarios navegando por este Foro: No hay usuarios registrados visitando el Foro y 4 invitados