{"id":393,"date":"2022-03-30T18:49:15","date_gmt":"2022-03-30T16:49:15","guid":{"rendered":"https:\/\/www.dev-tronic.de\/?p=393"},"modified":"2024-07-16T17:33:01","modified_gmt":"2024-07-16T15:33:01","slug":"z80-8-bit-zufallszahl-erzeugen","status":"publish","type":"post","link":"https:\/\/www.dev-tronic.de\/?p=393","title":{"rendered":"Z80 &#8211; 8 Bit Zufallszahl erzeugen"},"content":{"rendered":"\n<p>Eine echte Zufallszahl mit einem Computer zu erzeugen ist oft schwierig. Allerdings reichen f\u00fcr viele Anwendungen auch Pseudo-Zufallszahlen. Das nachfolgende kleine Programm erzeugt eine solche Pseudo-Zufallszahl.<\/p>\n\n\n\n<div class=\"wp-block-urvanov-syntax-highlighter-code-block\"><pre class=\"lang:z80 decode:true \" >; Mit der 16 Bit Variable \"Zufallsbasis\"\n; eine 8 Bit Zufallszahl im Register A erzeugen\n        push hl\n        ld hl,(Zufallsbasis)\n        ld a,h         ; Highbyte holen\n        rrca           ; Zweimal rechts rotieren\n        rrca\n        xor h          ; xor mit Original\n        rrca           ; Noch einmal nach rechts\n        xor l          ; xor mit dem Lowbyte\n        rrca           ; Ver mal rechts rotieren\n        rrca\n        rrca\n        rrca\n        xor l          ; Noch einmal xor\n        rra            ; Rechts rotieren \u00fcber Carry\n        adc hl,hl      ; Zufallsbasismal zwei\n        jr nz,weiter\n        ld hl,$733c    ; Wenn letztes xor null ergab, dann Reseed\nweiter: ld a,r         ; r = refresh register = Semi-Zufallszahl\n        xor l          ; xor mit l wird dann fast Zufall\n        ld (Zufallsbasis),hl ; Zufallsbasis f\u00fcr n\u00e4chsten Aufruf bewahren\n        pop hl\n        ret            ; Zufallszahl in A und fertig\n\nZufallsbasis:\n        defw C03Ah    ; Basis f\u00fcr eine Zufallszahl (beliebig)\n<\/pre><\/div>\n\n\n\n<p><\/p>\n\n\n\n<p><\/p>\n","protected":false},"excerpt":{"rendered":"<p>Eine echte Zufallszahl mit einem Computer zu erzeugen ist oft schwierig. Allerdings reichen f\u00fcr viele Anwendungen auch Pseudo-Zufallszahlen. Das nachfolgende kleine Programm erzeugt eine solche Pseudo-Zufallszahl.<\/p>\n","protected":false},"author":10,"featured_media":0,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[20],"tags":[],"class_list":["post-393","post","type-post","status-publish","format-standard","hentry","category-z80codeschnipsel"],"_links":{"self":[{"href":"https:\/\/www.dev-tronic.de\/index.php?rest_route=\/wp\/v2\/posts\/393","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/www.dev-tronic.de\/index.php?rest_route=\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/www.dev-tronic.de\/index.php?rest_route=\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/www.dev-tronic.de\/index.php?rest_route=\/wp\/v2\/users\/10"}],"replies":[{"embeddable":true,"href":"https:\/\/www.dev-tronic.de\/index.php?rest_route=%2Fwp%2Fv2%2Fcomments&post=393"}],"version-history":[{"count":2,"href":"https:\/\/www.dev-tronic.de\/index.php?rest_route=\/wp\/v2\/posts\/393\/revisions"}],"predecessor-version":[{"id":403,"href":"https:\/\/www.dev-tronic.de\/index.php?rest_route=\/wp\/v2\/posts\/393\/revisions\/403"}],"wp:attachment":[{"href":"https:\/\/www.dev-tronic.de\/index.php?rest_route=%2Fwp%2Fv2%2Fmedia&parent=393"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/www.dev-tronic.de\/index.php?rest_route=%2Fwp%2Fv2%2Fcategories&post=393"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/www.dev-tronic.de\/index.php?rest_route=%2Fwp%2Fv2%2Ftags&post=393"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}