Generatore di numeri pseudo-random su microcontrollori 8051

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
Approfittane ora!

Una risposta

  1. Maurizio Di Paolo Emilio Maurizio 31 Gennaio 2016

Scrivi un commento

Seguici anche sul tuo Social Network preferito!

Send this to a friend