Frage

Ich möchte wissen, ob es eine Routine oder eine Anweisung, eine Zufallszahl zu erzeugen Montage mit auf 8086. jede mögliche Hilfe wird geschätzt.

War es hilfreich?

Lösung

Die gängigste Methode ist die Zeitmarke zu verwenden. In 32-Bit-Modus kann es durch rdtsc Anweisung erfolgen, in 16-Bit-Modus: durch die Funktion 0 von BIOS Interrupt-1A mit

.

Weil es ein Zeitstempel ist, vermeiden Sie es häufig mit (wegen Mangels an geeigneter Dispersion), und verwenden Sie es als Samen für einen Pseudo-Zufallszahlengenerator. Wenn Sie brauchen nur einen zufälligen Wert, können Sie den Zeitstempel direkt verwenden.

In der Regel ein einfacher Pseudo-Zufallszahlengenerator ist genug:

static int seed = now();
seed = (seed * LARGE_PRIME1) % LARGE_PRIME2;

Und es gibt auch Wiki

Andere Tipps

Es gibt eine gute Antwort auf diese Frage genau auf Yahoo! Antworten:

Ich vermute, dass hier der Punkt ist, zu lernen, zu schreiben Assemblersprache. Hier ist die Befehlssatz ( http://www.emu8086.com/assembler_tutorial/8086_instruction_set.html ) Sie haben alle Anweisungen, die Sie brauchen auszuführen, um die Gleichung Sie müssen Erzeugen von Pseudozufallszahlen mit Ausnahme die ‚mod‘ Anweisung, wo Du muß ein Unterprogramm zum schreiben. Zahlen besonderes Augenmerk auf die Beschränkungen für die MUL und DIV Anleitung. „Store in einem separaten Datei“nicht implizit in dem Befehlssatz. Sie werden besser haben verstehen, was hier gesucht wird. "Datei" und „Drucken“ sind Konzepte im Zusammenhang mit Betriebssystem; Sie sind Formen der Ausgang in diesem Fall.

http://answers.yahoo.com/question/index?qid=20081030112909AAmjEsp

Sie können in Agner Fog Pseudo-Zufallszahlen-Generatoren interessiert sein (von denen einige in Assembler geschrieben werden) hier .

Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top