rdrand

___ tag123c ___ C ++ ist eine universelle Programmiersprache. Es wurde ursprünglich als Erweiterung von C entworfen und behält eine ähnliche Syntax, ist aber jetzt eine komplett andere Sprache. Verwenden Sie dieses Tag für Fragen zu Code, der mit einem C ++ - Compiler kompiliert werden soll. ___ tag123assembly ___ Assemblersprache (asm) Programmierfragen. Achten Sie darauf, auch mit dem Prozessor und / oder Befehlssatz, die Sie verwenden, sowie den Assembler TAG. WARNUNG: Verwenden Sie für .NET-Assemblies stattdessen das Tag [.net-assembly]. Verwenden Sie für Java ASM stattdessen das Tag [java-bytecode-asm]. ___ tag123random ___ Dieses Tag ist für Fragen gedacht, die sich auf Zufallszahlen und deren Generatoren beziehen, sei es pseudozufällig oder wirklich zufällig. ___ qstnhdr ___ Wie kann ich die Zufallszahl von Intels Prozessor mit Assembler bekommen? ___ answer23460272 ___
  

... aber ich weiß nicht, welche Register und Anweisungen verwendet werden sollten.

Unten ist der Inline-Assembler, den ich auf Linux-Rechnern mit GCC verwende. Ich glaube, ich habe einen wichtigen Teil aus einem Intel-Handbuch gerissen. Es wurde wahrscheinlich von David Johnston geschrieben, der die fantastischen technischen Antworten zu getaggt sind Fragen. Er hat auch die Hardware bei Intel entworfen.

%Vor%

Und der folgende Code wird für %code% verwendet. Es erkennt sowohl AMD- als auch Intel-CPUs (ich denke, das sind alle CPUs, die RDRAND bereitstellen).

%Vor%

Siehe auch Wie benutzt man RDRAND intrinsics? Es beantwortet nicht Ihre unmittelbare Frage, aber es könnte eine Alternative für Sie sein ( und kann anderen helfen).

    
___ tag123intel ___ Für Probleme im Zusammenhang mit Intel-Halbleiterchips und -baugruppen, Intel-Architekturmerkmalen und ISA-Erweiterungen sowie Intel-Chips Mikroarchitektur. ___ tag123drand ___ RdRand (auch RDRAND) ist eine Anweisung zum Zurückgeben von Zufallszahlen von einem chipinternen Zufallszahlengenerator. ___ answer11407149 ___

Durch den Aufruf der Anweisung %code% auf unterstützten CPUs (derzeit nur Ivy Bridge- und Haswell Intel-CPUs) wird ein zufälliger Wert in ein bestimmtes Register eingefügt. Beispielsweise erhalten Sie einen zufälligen 64-Bit-Wert:

%Vor%

Bei Erfolg wird das Übertragsbit gesetzt. Weitere Informationen finden Sie in Intels Implementierungsleitfaden für Bull Mountain Software . ("Bull Mountain" ist der Codename für Intels Hardware RNG.)

    
___ qstntxt ___

Ich muss eine Zufallszahl von Intels Zufallsgenerator im Prozessor (Intel Core i3) bekommen. Ich möchte keine Bibliothek benutzen. Ich möchte Assembler einfügen in C ++, aber ich weiß nicht, welche Register und Anweisungen verwenden sollten.

    
___
2
Antworten

Wie kann ich die Zufallszahl von Intels Prozessor mit Assembler bekommen?

Ich muss eine Zufallszahl von Intels Zufallsgenerator im Prozessor (Intel Core i3) bekommen. Ich möchte keine Bibliothek benutzen. Ich möchte Assembler einfügen in C ++, aber ich weiß nicht, welche Register und Anweisungen verwenden sollten.   ...
10.07.2012, 05:26