Не знаю, на какой системе вы пытаетесь это сделать, поэтому вот общий ответ, который должен применяться, независимо от того, какая:
query the system time, using whatever syscall / library call / api you have available
and out the top bits, leaving only the lowest 2
tadaa. номера рандов.
если вы хотите, чтобы они использовались более случайно, возможно, сделайте это вместо:
query the system time
and out the top bits leaving only the lowest 4 store in "register1"
Loop:
do something unimportant
do something else unimportant
etc.
count down register1
jump to EndLoop if register1==0
jump Loop
EndLoop:
query the system time
and out the top bits, leaving just the lower two
ура!
/ * B2S +1011 *
РЕДАКТИРОВАТЬ: Извините, был в отпуске вне досягаемости Интернета. (да, действительно удивительно, что такие места все еще существуют) Я не особенно знаком ни с EyeBot, ни с 68k asm. Так что я не знаю системный вызов для чтения по часам или времени (подойдет). Посмотрите, что один, остальной код должен быть что-то вроде
//Assuming you have called the syscall to get the system time/clock, and stored it in D0
AND #%01111, D0
loop:
// It really doesn't matter,
// What Instructions you put here,
// just put 4 or 5 instructions that don't
// mess with D0, eg. AND, MOVE, ADD, AND, OR
SUB #1, D0
TST D0 // TST instruction is probably not needed
BEQ EndLoop
JMP loop
EndLoop:
// Get the system time/clock again (Next instruction assumes clock is in D0)
AND #%011, D0
D0 теперь должен содержать ваше случайное число