Wo finde ich die Befehlssätze für Intel- oder AMD-Mikroprozessoren?

8767
Bum Kim

Es tut mir leid, wenn dies dumme Fragen sind oder sich nicht auf diese Website beziehen. Ich weiß nicht, wo ich sonst fragen könnte.

Okay, zuerst verstehe ich nicht wirklich, wie Instruktionssätze für Mikroprozessoren funktionieren. Werden sie durch eine Assembler-Sprache implementiert? Verwendet Intel für alle Mikroprozessoren einer CPU-Reihe wie Haswell oder Ivy Bridge die gleichen Befehlssätze oder unterscheidet sich jeder einzelne Mikroprozessor? Ich habe immer gedacht, dass Mikroarchitektur das gleiche ist wie der Befehlssatz, aber anscheinend ist es nicht so. Kann mir das auch jemand erklären? Und noch eines: Gibt es einen Ort, an dem man die Befehlssätze von Intel- oder AMD-Mikroprozessoren anzeigen kann?

Vielen Dank im Voraus.

0
Ich gehe davon aus, dass dies in Kürze geschlossen werden wird. Keine Stimme von mir. Xavierjazz vor 10 Jahren 1
Ich bin sehr verwirrt über den Grund für das Schließen. Ich sehe in dieser Frage nichts, was nach "Fehlern in Pre-Release / Beta-Software oder Prototyp-Hardware" fragt. Oder eines der oben genannten Dinge für diese Angelegenheit. Jamie Hanrahan vor 7 Jahren 0

1 Antwort auf die Frage

4
LawrenceC

Wenn Sie eine Liste von Anweisungen für eine CPU wünschen, möchten Sie im Allgemeinen den Befehlssatz oder den Referenzhandbuch für Programmierer.

Intel: http://www.intel.com/content/www/us/en/processors/architectures-software-developer-manuals.html

AMD: http://developer.amd.com/resources/documentation-articles/developer-guides-manuals/ (Handbuch für Architekturprogrammierer ist das, was Sie wollen)

Intel verfügt über mehrere Prozessorarchitekturen, wobei x86 (und die) am beliebtesten ist. x86 wurde (und wird auch weiterhin) im Laufe der Zeit erweitert. In der Regel sind spätere Revisionen abwärtskompatibel mit früheren Revisionen. Zum Beispiel war der erste Prozessor der x86-Architektur von Intel der 8088. Dann kam der 80286 heraus. Es erweitert den Befehlssatz 8088. 80286 versteht alle 8088-Baugruppen. Und so weiter in 80386, 80486, Pentium, der Core-Serie und der i-Serie.

Ich habe immer gedacht, dass Mikroarchitektur das gleiche ist wie der Befehlssatz

Nein. Die Mikroarchitektur ist "unter" und implementiert die Hauptarchitektur. In diesem Fall verfügt Intel über viele Mikroarchitekturen, die verschiedene x86-Befehlssätze für Revisionen implementieren. Die Mikroarchitektur ist nicht etwas, worüber Sie sich beim Erlernen der Assembler-Programmierung Gedanken machen müssen. Sie müssen wissen, welche x86- Revision (oder Architektur, nicht Mikroarchitektur ) Sie verwenden, z. B. hat Pentium Anweisungen, die für 80386-Prozessoren nicht gelten. Sie können mit einem Buch oder etwas beginnen, das Ihnen das Programmieren eines 8088 beibringt, da dies einfacher ist und spätere Architekturrevisionen (286, 386 usw.) darauf aufbauen.

Okay, zuerst verstehe ich nicht wirklich, wie Instruktionssätze für Mikroprozessoren funktionieren. Werden sie durch eine Assembler-Sprache implementiert?

Mit der Assembler-Sprache können Sie als Programmierer Maschinensprache mit einem Text schreiben, der einem für Menschen lesbaren Text ähnelt. In der Regel können Sie Etiketten verwenden, anstatt sich an rohe RAM- oder E / A-Adressen zu erinnern. Die Alternative wäre die manuelle Eingabe der Operationscodes für jede Anweisung. Dies ist angesichts der Anzahl der Anweisungen und der Adressierungsmodi von x86 eine sehr langwierige Aufgabe.

Jede Anweisung wird durch eine Mnemonik dargestellt und wird in eine einzige Maschinensprache übersetzt. Ein Assembler nimmt Ihren Assembler-Code (in einer Textdatei) und baut ihn (NICHT kompilieren) zu einem binären Image auf, das die CPU ausführen kann.

AMD hat Intels Befehlssatz kopiert, begann jedoch mit SSE-Anweisungen, VMM-Anweisungen und möglicherweise anderen Dingen auseinanderzulaufen. Das meiste, was Sie für die Intel-Baugruppe lernen, wird jedoch zutreffen.