Assembler Zufallszahlen generieren?
Ich benötige für ein Programm eine Zufallszahl um am Microcontroller (8051) einen zufälligen Port zu wählen. Programmiert soll wird mit Assembler (a51).
Ich weiß das es keinen befehl gibt eine Zufallszahl zu generieren, aber gibt es eine andere Möglichkeit dazu? Kann man z.B. ein Java Pprogramm oder so einbinden?
Danke.
5 Antworten
rechnerisch, also immer 3^2 rechnen lassen oder 3 + 2 und dann immer vom Ergebnis die letzte Ziffer rausschneiden lassen, also verwenden!
Kenne mich mit der aaktuellen Assemblerprogrammierung eher wenig aus, aber es gibt ja Zufallsgeneratoren als Hardware...
Die kann evtl. echte Zufallszahlen generieren.
Ansonsten wird es wahrscheinlich eher schwer, echte Zufallszahlen zu erhalten...
Man müsste auf irgendeinen Input warten, der mehr oder weniger nicht voraussehbar bzw. nicht exakt voraussehbar ist...
Es gibt mathematische Funktionen, die sehr "zufällig aussehende" Ergebnisse liefern. Wenn man diese nutzt und dann z. B. per XOR noch weitere Daten einmischt, wie schnell ändernde Hardwareparameter oder Registerwerte, bekommt man schon ein gewisses Maß an tatsächlicher "Zufälligkeit".
Lesetipp: Google-Anfrage "random function assembly". Da kommt tonnenweise Kram hoch, der sich mit der Thematik beschäftigt.
Was kann das Ding so alles rechnen? Was für Rechenoperationen unterstützt es? Ziehe doch immer die Wurzel aus X! X fortlaufend
gibt es bei dem teil eine uhr? Mit tausendstel? Dann könnteste davon irgendwelche ziffern nehmen!