PlusPedia wird derzeit technisch modernisiert. Aktuell laufen Wartungsarbeiten. Für etwaige Unannehmlichkeiten bitten wir um Entschuldigung; es sind aber alle Artikel zugänglich und Sie können PlusPedia genauso nutzen wie immer.
Neue User bitte dringend diese Hinweise lesen:
Anmeldung - E-Mail-Adresse Neue Benutzer benötigen ab sofort eine gültige Email-Adresse. Wenn keine Email ankommt, meldet Euch bitte unter NewU25@PlusPedia.de.
Hinweis zur Passwortsicherheit:
Bitte nutzen Sie Ihr PlusPedia-Passwort nur bei PlusPedia.
Wenn Sie Ihr PlusPedia-Passwort andernorts nutzen, ändern Sie es bitte DORT bis unsere Modernisierung abgeschlossen ist.
Überall wo es sensibel, sollte man generell immer unterschiedliche Passworte verwenden! Das gilt hier und im gesamten Internet.
Aus Gründen der Sicherheit (PlusPedia hatte bis 24.07.2025 kein SSL | https://)
Bei PlusPedia sind Sie sicher: – Wir verarbeiten keine personenbezogenen Daten, erlauben umfassend anonyme Mitarbeit und erfüllen die Datenschutz-Grundverordnung (DSGVO) vollumfänglich. Es haftet der Vorsitzende des Trägervereins.
PlusPedia blüht wieder auf als freundliches deutsches Lexikon.
Wir haben auf die neue Version 1.43.3 aktualisiert.
Wir haben SSL aktiviert.
Hier geht es zu den aktuellen Aktuelle Ereignissen
Assembler-Befehle zum Datenaustausch: Unterschied zwischen den Versionen
das ist keine Programmiersprache, bei WP nicht vorhanden |
|||
(Eine dazwischenliegende Version von einem anderen Benutzer wird nicht angezeigt) | |||
Zeile 2: | Zeile 2: | ||
== Details == | == Details == | ||
* Für den Datenaustausch zwischen [[Register]]n, Speicherstellen und [[Konstante]]n gibt es vom [[8086]] bis zu den [[Pentium]]-Prozessoren verschiedene Befehle. | * Für den Datenaustausch zwischen [[Register]]n, Speicherstellen und [[Konstante]]n gibt es vom [[8086]] bis zu den [[Pentium]]-Prozessoren verschiedene Befehle. | ||
* Der wichtigste Befehl lautet ''MOV'' (''move data''). Er transferiert eine Kopie eines Wertes an eine andere Stelle. Der originale Wert bleibt dabei erhalten. Der zweite Operand ist dabei die Quelle, und der erste Operand das Ziel. Beispiel: ''MOV Mem16, SReg'' transferiert den Inhalt eines Segmentregisters an eine Speicherstelle. | * Der wichtigste Befehl lautet ''MOV'' (''move data''). Er transferiert eine Kopie eines Wertes an eine andere Stelle. Der originale Wert bleibt dabei erhalten. Der zweite Operand ist dabei die Quelle, und der erste Operand das Ziel. Beispiel: ''MOV Mem16, SReg'' transferiert den Inhalt eines Segmentregisters an eine Speicherstelle. <ref>Bob Neveln: ''LINUX Assembly Language Programming'', Prentice Hall Inc., 2000, S. 54 ff.</ref> | ||
* ''MOVSX'' und ''MOVZX'' sind Varianten des ''MOV''-Befehls, die im Rahmen des Kopierens den Wertebereich des Datums vorzeichenerweitert auf den des nächsthöheren Datums erweitern. | * ''MOVSX'' und ''MOVZX'' sind Varianten des ''MOV''-Befehls, die im Rahmen des Kopierens den Wertebereich des Datums vorzeichenerweitert auf den des nächsthöheren Datums erweitern. | ||
* ''XCHG'' (''exchange'') tauscht die Inhalte zweier Operanden aus, indem er ein prozessorinternen temporären Bereich verwendet. | * ''XCHG'' (''exchange'') tauscht die Inhalte zweier Operanden aus, indem er ein prozessorinternen temporären Bereich verwendet. | ||
Zeile 25: | Zeile 25: | ||
<references/> | <references/> | ||
---- | ---- | ||
[[Kategorie:Assembler]] | [[Kategorie:Assembler]] | ||
[[Kategorie:Datenaustausch]] | [[Kategorie:Datenaustausch]] |
Aktuelle Version vom 24. Dezember 2019, 00:30 Uhr
Assembler-Befehle zum Datenaustausch sind Operationen der Assembler-Sprache, die einen Austausch von Daten ermöglichen.
Details
- Für den Datenaustausch zwischen Registern, Speicherstellen und Konstanten gibt es vom 8086 bis zu den Pentium-Prozessoren verschiedene Befehle.
- Der wichtigste Befehl lautet MOV (move data). Er transferiert eine Kopie eines Wertes an eine andere Stelle. Der originale Wert bleibt dabei erhalten. Der zweite Operand ist dabei die Quelle, und der erste Operand das Ziel. Beispiel: MOV Mem16, SReg transferiert den Inhalt eines Segmentregisters an eine Speicherstelle. [1]
- MOVSX und MOVZX sind Varianten des MOV-Befehls, die im Rahmen des Kopierens den Wertebereich des Datums vorzeichenerweitert auf den des nächsthöheren Datums erweitern.
- XCHG (exchange) tauscht die Inhalte zweier Operanden aus, indem er ein prozessorinternen temporären Bereich verwendet.
- BSWAP tauscht den "oberen" und "unteren" Inhalt eines 32-Bit-Register aus.
- XADD vertauscht die Inhalte des ersten und zweiten Operanden und addiert sie danach auf. Der Befehl entspricht also einer Befehlskette aus XCHG und ADD.
- CMPXCHG und CMPXCHG8B tauschen, abhängig von Ergebnis eines vorherigen Vergleichs zwei Daten miteinander aus.
- Die Befehle XLAT und XLATB lesen ein Byte aus einer Tabelle anhand eines Indexes aus.
- PUSH und POP sind Befehle, die einen Wert in den Stack transferieren bzw. von dort wieder "abholen".
- PUSHA und POPA machen dieselbe Operation gleich für alle Allzweckregister "in einem Rutsch".
- Die Befehle IN und OUT dienen der Kommunikation mit Ports,, d.h. mit externen Geräten. [2]
Links und Quellen
Siehe auch
Weblinks
Bilder / Fotos
Videos
Quellen
Literatur
- Trutz Eyke Podschun: Das Assembler-Buch - Grundlagen, Einführung und Hochsprachnoptimierung, Addison-Wesley Verlag, 2002, Seite 86 bis 99