Generatore di numeri pseudo-random su microcontrollori 8051
La generazione di numeri casuali può spesso causare inutili perdite di tempo. Nel listato 1 sono riportate due soluzioni per la generazione di numeri a 8 e 16 bit su microcontrollori 8051.
.equ rand8reg, 0x20 ;one byte
.equ rand16reg, 0x21 ;two bytes
;Generazione di un numero ad 8 bit.
;Il risultato viene posto nell’accumulatore.
rand8: mov a, rand8reg
jnz rand8b
cpl a
mov rand8reg, a
rand8b:anl a, #10111000b
mov c, p
mov a, rand8reg
rlc a
mov rand8reg, a
ret
;generazione del numero a 16 bit.
;Il byte meno significativo viene posto nell’accumulatore
;mentre il byte più significativo viene messo nel registro B
rand16:mov a, rand16reg
jnz rand16b
mov a, rand16reg+1
jnz rand16b
cpl a
mov rand16reg, a
mov rand16reg+1, a
rand16b:anl a, #11010000b
mov c, p
mov a, rand16reg
jnb acc.3, rand16c
cpl c
rand16c:rlc a
mov rand16reg, a
mov b, a
mov a, rand16reg+1
rlc a
mov rand16reg+1, a
xch a, b
ret
| Listato 1 |




In analogia con il C, i numeri pseudo casuali vengono generati generalmente con l’ausilio d i due funzioni: srand e rand. Una semplice base di come si possano crittografare i dati, e’ chiaro che poi gli algoritmi in questione sono sviluppati in maniera piu’ complicata.