Mindmap-Galerie Kapitel 4 Befehlssystem
Dies ist eine Mindmap zum Kapitel 4-Anweisungssystem, einschließlich des Befehlssystems, des Adressierungsmodus von Anweisungen, der Codedarstellung des Programms auf Maschinenebene usw.
Bearbeitet um 2024-01-16 15:52:47Einhundert Jahre Einsamkeit ist das Meisterwerk von Gabriel Garcia Marquez. Die Lektüre dieses Buches beginnt mit der Klärung der Beziehungen zwischen den Figuren. Im Mittelpunkt steht die Familie Buendía, deren Wohlstand und Niedergang, interne Beziehungen und politische Kämpfe, Selbstvermischung und Wiedergeburt im Laufe von hundert Jahren erzählt werden.
Einhundert Jahre Einsamkeit ist das Meisterwerk von Gabriel Garcia Marquez. Die Lektüre dieses Buches beginnt mit der Klärung der Beziehungen zwischen den Figuren. Im Mittelpunkt steht die Familie Buendía, deren Wohlstand und Niedergang, interne Beziehungen und politische Kämpfe, Selbstvermischung und Wiedergeburt im Laufe von hundert Jahren erzählt werden.
Projektmanagement ist der Prozess der Anwendung von Fachwissen, Fähigkeiten, Werkzeugen und Methoden auf die Projektaktivitäten, so dass das Projekt die festgelegten Anforderungen und Erwartungen im Rahmen der begrenzten Ressourcen erreichen oder übertreffen kann. Dieses Diagramm bietet einen umfassenden Überblick über die 8 Komponenten des Projektmanagementprozesses und kann als generische Vorlage verwendet werden.
Einhundert Jahre Einsamkeit ist das Meisterwerk von Gabriel Garcia Marquez. Die Lektüre dieses Buches beginnt mit der Klärung der Beziehungen zwischen den Figuren. Im Mittelpunkt steht die Familie Buendía, deren Wohlstand und Niedergang, interne Beziehungen und politische Kämpfe, Selbstvermischung und Wiedergeburt im Laufe von hundert Jahren erzählt werden.
Einhundert Jahre Einsamkeit ist das Meisterwerk von Gabriel Garcia Marquez. Die Lektüre dieses Buches beginnt mit der Klärung der Beziehungen zwischen den Figuren. Im Mittelpunkt steht die Familie Buendía, deren Wohlstand und Niedergang, interne Beziehungen und politische Kämpfe, Selbstvermischung und Wiedergeburt im Laufe von hundert Jahren erzählt werden.
Projektmanagement ist der Prozess der Anwendung von Fachwissen, Fähigkeiten, Werkzeugen und Methoden auf die Projektaktivitäten, so dass das Projekt die festgelegten Anforderungen und Erwartungen im Rahmen der begrenzten Ressourcen erreichen oder übertreffen kann. Dieses Diagramm bietet einen umfassenden Überblick über die 8 Komponenten des Projektmanagementprozesses und kann als generische Vorlage verwendet werden.
Kapitel 4 Befehlssystem
Befehlssystem
Befehlssystem
Das Befehlssystem ist der Kernbestandteil der Befehlssatzarchitektur (ISA), die vollständig die Schnittstelle zwischen Software und Hardware definiert.
Grundformat der Anweisungen
Nulladressenanweisung
ein Adressbefehl
Zwei Adressanweisungen
Drei Adressanweisungen
Vier Adressanweisungen
Opcode-Befehlsformat mit fester Länge
Opcodes mit fester Länge sind sehr nützlich, um das Design von Computerhardware zu vereinfachen und die Geschwindigkeit der Befehlsdecodierung und -erkennung zu verbessern.
Erweitertes Opcode-Anweisungsformat
Der Operationstyp der Anweisung
Datenübertragung
Übertragung zwischen Registern (MOV)
Die Speichereinheit liest Daten in das CPU-Register (LOAD)
CPU-Register schreibt Daten in die Speichereinheit (STORE)
Arithmetische und logische Operationen
Addiere (ADD), subtrahiere (SUB), vergleiche (CMP), multipliziere (MUL), dividiere (DIV), addiere 1 (INC), subtrahiere 1 (DEC), AND (AND) oder (OR), negiere (NOT). ), exklusives ODER (XOR)
Schichtbetrieb
Arithmetische Verschiebung, logische Verschiebung, zirkuläre Verschiebung
Anweisungen zur Programmsteuerung
Anweisungen zur Schleifensteuerung
SCHLEIFE L1. Jedes Mal, wenn dieser Befehl ausgeführt wird, wird die Anzahl der Schleifen im Schleifenzähler ECX um 1 verringert und dann beurteilt, ob ECX 0 ist. Wenn es nicht 0 ist, geht das Programm zu L1, um die Ausführung fortzusetzen Die Schleife wird beendet und die nächste Anweisung der LOOP-Anweisung wird ausgeführt.
Transferanweisung
bedingungslose Übertragung
bedingte Übertragung
Verwenden Sie JZ und JNZ, um die Verzweigung darzustellen, wenn = und ≠, und verwenden Sie JGE/JAE, JG/JA, JLE/JBE und JL/JB, um die Verzweigung darzustellen, wenn ≥, >, ≤ und < von Zahlen mit/ohne Vorzeichen.
Anweisungen zum Aufrufen und Zurückkehren von Unterprogrammen
Anweisungen zum Aufrufen von Unterprogrammen
Die Adresse des nächsten Befehls des Rotorbefehls im Hauptprogramm wird als Haltepunkt bezeichnet, und der Haltepunkt ist die Rückkehradresse, wenn das Unterprogramm zum Hauptprogramm zurückkehrt.
Call-Anweisung in x86, Jal-Anweisung in MIPS
Befehl zurückgeben
ret-Anweisung in x86, jr $ra-Anweisung in MIPS.
Der Unterschied zwischen Anrufanweisungen und Übertragungsanweisungen
Übertragungsanweisungen werden innerhalb desselben Programms übertragen, während Rotoranweisungen zwischen verschiedenen Programmen übertragen werden.
Der Übertragungsbefehl muss nicht in die ursprüngliche Position zurückkehren, während der Rotorbefehl nicht in die ursprüngliche Position zurückkehren muss.
Rotoranweisungen und Rückgabeanweisungen sind normalerweise unbedingt, während bedingte Übertragungsanweisungen Bedingungen erfordern.
Eingabe- und Ausgabeoperationen
Wenn das externe Gerät und der Hauptspeicher einen einheitlichen Adressierungsmodus verwenden, müssen keine dedizierten E/A-Anweisungen eingerichtet werden, und die Speicherzugriffsanweisungen können verwendet werden, um direkt auf das externe Gerät zuzugreifen.
Anweisungen zur Stapelmanipulation
Anweisungen zur String-Verarbeitung
Befehlsadressierungsmodus
Befehlsadressierung und Datenadressierung
Befehlsadressierung (Das Finden der Adresse des nächsten auszuführenden Befehls wird als Befehlsadressierung bezeichnet)
sequentielle Adressierung
Die Adresse des nächsten Befehls wird durch Addition von eins zu PC gebildet, d. h. EA = (PC) „1“ der Adresse des nächsten Befehls. Unter diesen ist „1“ die Anzahl der Speichereinheiten, die von der aktuellen Anweisung belegt werden.
Adressierung überspringen
Absolute Adresse (direkt vom Marker erhalten)
Relative Adresse (Offset relativ zur aktuellen Befehlsadresse)
Datenadressierung (Das Finden der Datenadresse dieser Anweisung wird als Datenadressierung bezeichnet)
Gängige Datenadressierungsmethoden
implizite Adressierung
Sofortige (Nummern-)Adressierung
MOV EAX,2008H
Direkte Ansprache
MOV EAX,[2008H]
Indirekte Adressierung
MOV EAX,@2008H; @ ist das Flag für die indirekte Adressierung
Adressierung registrieren
MOV EAX,ECX
Registrieren Sie die indirekte Adressierung
MOV AL,[EBX]
relative Adressierung
EA=PC 1D
Basisadressierung
Verwenden Sie spezielle Register: Das Basisadressregister verwendet eine implizite Adressierungsmethode und muss in der Anweisung nicht explizit angegeben werden. Das formale Adressfeld in der Anweisung gibt den Offset-Wert an, der bei der Basisadressierung beteiligt ist. Verwendung allgemeiner Register: Sie müssen ein Registernummernfeld hinzufügen, um die Nummer des verwendeten Basisadressregisters anzugeben.
indizierte Adressierung
MOV EAX,32[ESI] #Fügen Sie den Offset 32 zum Wert des Indexregisters ESI hinzu, um eine Adresse für den Zugriff auf den Hauptspeicher zu bilden, und senden Sie das Ergebnis an EAX.
Stack-Adressierung
Speicherstapel
Registerstapel
Codedarstellung eines Programms auf Maschinenebene
Format der Montageanleitung
Vergleich von AT&T-Formatbefehlen und Intel-Formatbefehlen
Allgemeine Anweisungen (Intel-Format)
Die für die Operanden verwendeten Bezeichnungen repräsentieren jeweils Register, Speicher und Konstanten.
<reg>: Stellt ein beliebiges Register dar. Wenn dahinter eine Zahl steht, geben Sie die Anzahl der Ziffern an.
<mem>: repräsentiert die Speicheradresse
<con>: stellt eine 8-Bit-, 16-Bit- oder 32-Bit-Konstante dar
Anweisungen zur Datenübertragung
MOV-Anweisung
Push-Anweisung
pop-Befehl
Arithmetische und logische Operationsanweisungen
jmp-Befehl
Achten Sie auf die Unterscheidung zwischen jmp (bedingungsloser Sprung) und jcondition (bedingter Sprungbefehl).
jcondition-Anweisung
cmp/test-Befehl
cmp- und test-Anweisungen werden normalerweise in Verbindung mit der jcondition-Anweisung verwendet
Call/Ret-Anweisung
Allgemeine Anweisungen für arithmetische Operationen
Allgemeine logische Betriebsanweisungen
Darstellung von Prozeduraufrufen auf Maschinenebene
Angenommen, Prozess P (Aufrufer) ruft Prozess Q (Angerufener) auf. Die Ausführungsschritte des Prozeduraufrufs sind wie folgt
1) P platziert die Eingabeparameter (aktuelle Parameter) dort, wo Q darauf zugreifen kann.
2) P speichert die Rücksprungadresse an einem bestimmten Ort und übergibt dann die Kontrolle an Q. CALL-Anweisung
3) Q speichert den Speicherort von P (den Inhalt des allgemeinen Registers) und weist Platz für seine eigenen nicht statischen lokalen Variablen zu.
4) Führen Sie den Prozess Q aus.
5) Q stellt die Szene von P wieder her, legt das zurückgegebene Ergebnis an einem Ort ab, auf den P zugreifen kann, und gibt den von lokalen Variablen belegten Platz frei.
6) O entnimmt die Absenderadresse und überträgt die Kontrolle an P. RET-Anweisung
Funktionsaufrufanweisung: <Funktionsname> aufrufen
①Schieben Sie den alten IP-Wert auf den Stapel (speichern Sie ihn oben im Stapelrahmen der Funktion). ② Legen Sie den neuen Wert von IP fest und übertragen Sie ihn bedingungslos auf die erste Anweisung der aufgerufenen Funktion
Funktionsrückgabeanweisung: ret
Suchen Sie den alten IP-Wert (d. h. die Rücksprungadresse) oben im Stapelrahmen der Funktion, entfernen Sie ihn vom Stapel und stellen Sie das IP-Register wieder her
Markierungsstapelrahmenbereich: EBP, ESP-Register
ebp: Zeigt auf den „Boden“ des aktuellen Stapelrahmens
esp: zeigt auf die „Oberseite“ des aktuellen Stapelrahmens
Der Zugriff auf Daten innerhalb des Stack-Frames basiert auf ebp und esp.
Wie greife ich auf den Stapelrahmen zu?
Wie wechsle ich Stapelrahmen, wenn eine Funktion aufgerufen wird?
„Routineverarbeitung“ am Anfang jeder Funktion
push ebp #Speichern Sie die Stack-Frame-Basisadresse der vorherigen Layer-Funktion (alter Wert von ebp).
mov ebp,esp #Legen Sie die Stapelrahmen-Basisadresse der aktuellen Funktion fest (ebp neuer Wert).
Wie wechsle ich Stapelrahmen, wenn eine Funktion zurückkehrt?
„Routineabarbeitung“ vor jeder Funktion ret
Hinweis: Der untere Teil jedes Stapelrahmens wird zum Speichern der Basisadresse des vorherigen Stapelrahmens verwendet.
mov esp, ebp #Lassen Sie esp auf den unteren Rand des aktuellen Stapelrahmens zeigen
pop ebp #Entfernen Sie das Element, auf das esp zeigt, vom Stapel und schreiben Sie es in das Register ebp
Welcher Inhalt darf in einem Stapelrahmen enthalten sein?
Darstellung ausgewählter Anweisungen auf Maschinenebene
unbedingte Übertragungsanweisung
jmp<Adresse> #PC bedingungslos an <Adresse> übertragen jmp 128 #<Adresse> kann als Konstante angegeben werden jmp eax #<address> kann aus einem Register stammen jmp[999] #<Adresse> kann aus dem Hauptspeicher stammen jmp NEXT #<address> kann mit „label“ verankert werden
Das zugrunde liegende Prinzip der cmp-Anweisung
Im Wesentlichen führt es eine a-b-Subtraktionsoperation durch und generiert die Flagbits OF, ZF, CF, SF
je<Adresse> #Wenn a==b, springe, ZF==1?
jne<Adresse> #If a!=b, springen, ZF==0?
jg<Adresse> #Wenn a>b, springe, 2F==0 && SF==OF?
jge<Adresse> #Wenn a>=b, springe, SF==OF?
jl<Adresse> #Wenn a<b, springen, SF!=OF?
jle<Adresse> #Wenn a<=b, springe, SF!=OF||ZF==1?
Darstellung von Schleifenanweisungen auf Maschinenebene
Implementieren von Schleifen mithilfe bedingter Übertragungsanweisungen
Verwenden Sie die Schleifenanweisung, um eine Schleife zu implementieren
Grundkonzepte von CISC und RISC
Komplexer Unterrichtssystemcomputer (CISC)
Hauptmerkmal
Das Befehlssystem ist komplex und riesig
Die Länge des Befehls ist nicht festgelegt, es gibt viele Befehlsformate und viele Adressierungsmodi.
Es gibt keine Einschränkungen hinsichtlich der Befehle, auf die aus dem Speicher zugegriffen werden kann
Die Häufigkeit der Nutzung verschiedener Anweisungen variiert stark.
Die Ausführungszeit verschiedener Befehle variiert stark und die meisten Befehle erfordern zur Ausführung mehrere Taktzyklen.
Die meisten Steuerungen verwenden eine Mikroprogrammsteuerung
Es ist schwierig, effiziente Objektcodeprogramme mit optimierter Kompilierung zu generieren
Die meisten von ihnen können Softwarekompatibilität erreichen, das heißt, High-End-Maschinen enthalten alle Anweisungen von Low-End-Maschinen und können erweitert werden.
Computer mit reduziertem Unterrichtssystem (RISC)
Hauptmerkmal
Wählen Sie einige der am häufigsten verwendeten einfachen Anweisungen aus. Die Funktionen komplexer Anweisungen werden durch eine Kombination einfacher Anweisungen realisiert.
Die Befehlslänge ist fest, es gibt wenige Arten von Befehlsformaten und es gibt wenige Arten von Adressierungsmodi.
Nur Lade-/Speicherbefehle (Abrufen/Speichern) greifen auf den Speicher zu, und die Operationen anderer Befehle werden zwischen Registern ausgeführt.
Die Anzahl der Allzweckregister in der CPU ist recht groß
RISC muss die Befehlspipeline-Technologie verwenden und die meisten Befehle werden innerhalb eines Taktzyklus abgeschlossen.
Basiert hauptsächlich auf fester Verdrahtungssteuerung, keine oder nur geringe Verwendung von Mikroprogrammsteuerung
Achten Sie besonders auf die Kompilierungsoptimierung, um die Programmausführungszeit zu verkürzen
Die meisten RISC-Maschinen sind nicht mit älteren Maschinen kompatibel
Vergleich von CISC und RISC