Hey!
Jak zapewne mała część wie, napisałem klona gry Tetris.
Pseudo generator liczb losowych PRNG działa znośnie :)
@furious_programming: pochwal się swoim pomysłem na generator, mam nadzieję, że będzie łatwy do implementacji w języku asemblera.
; pobierz pseudo losową wartość
mov eax, dword [taris_seed]
macro_library LIBRARY_STRUCTURE_ENTRY.xorshift32
;===============================================================================
; Copyright (C) Andrzej Adamczyk (at https://blackdev.org/). All rights reserved.
; GPL-3.0 License
;===============================================================================
;===============================================================================
; wejście:
; rax - ziarno
; wyjście:
; rax - wartość "losowa"
library_xorshift32:
; zachowaj oryginalne rejestry
push rdx
; https://en.wikipedia.org/wiki/Xorshift
mov edx, eax
shl eax, 13
xor eax, edx
mov edx, eax
shr eax, 17
xor eax, edx
mov edx, eax
shl eax, 5
xor eax, edx
; przywróć oryginalne rejestry
pop rdx
; powrót z procedury
ret