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.