Sie haben sicherlich recht. Die meisten, wenn nicht alle Instanzen einer mov-Anweisung sind tatsächlich eine Kopie.
Einige haben nicht einmal einen Film, für den es sich um eine Pseudoanweisung handelt
add dest=source+zero.
Verstehen Sie auch, dass die ASCII-Syntax willkürlich ist, der Maschinencode etwas bedeutet und für diesen Prozessor definiert und festgelegt ist. Meistens, wenn nicht die ganze Zeit, erstellt der Ersteller / Hersteller des Prozessors eine Syntax, um teilweise den Befehlssatz (Maschinencode) zu definieren, und teilweise um eine Syntax zu definieren, die mit einem Werkzeug funktioniert, das er auch erstellt oder in Auftrag gegeben hat, um diese Assemblersprache in eine Maschine umzuwandeln Code für ihren Prozessor. Sie können sicherlich zum Beispiel in den Gnu-Assembler gehen (der eine Tendenz hat, seine eigene Sache zu tun und sich sowieso nicht an die Syntax des Prozessorherstellers zu halten) und eine Kopier-Pseudo-Anweisung hinzufügen.
Anwendungsfälle: Heutzutage wird der meiste Assembler-Code vom Compiler generiert, und der Befehl mov wird am häufigsten verwendet, um einen Wert tatsächlich von einem Register in ein anderes zu verschieben, damit das Quellregister (Speicherort usw.) wieder verwendet werden kann. Aus Gründen der Aufrufkonvention für diesen Prozessor oder weil einige Befehle oder Befehlssätze nicht orthogonal sind, müssen Sie die Dinge verschieben. Sicherlich gibt es Zeiten, in denen eine Kopie eines Werts gewünscht wird und das mov verwendet werden kann, um diese Kopie zu erstellen.
Ich bezweifle ernsthaft, dass wir jemals erfahren werden, welche Person oder welches Team als erstes auf den Begriff gekommen ist und warum sie sich für das Verschieben der Kopie entschieden haben. Da wir uns daran gewöhnt haben, können wir es bei jedem neuen Befehlssatz wiederverwenden. Wie bereits erwähnt, verwenden einige Befehlssätze registergestützte Lade- und Speicherbefehle, wobei ein Operand ein Register und der andere eine Adresse ist, und mov nur für das Register, um Fälle zu registrieren. Andere Befehlssätze verwenden für jeden Operanden mov für register oder mem. Obwohl Sie sicherlich jedem / vielen der Open-Source-Assembler eine Kopie hinzufügen können, wird es schwieriger sein, die Traktion bei der Verwendung zu erlangen. Wenn Sie an einem Ort arbeiten, an dem Sie die Kontrolle über die ursprüngliche Syntax haben (Arbeit für einen Ort, an dem ein neuer Prozessor erstellt wird), an dem Sie festlegen können, dass das Register verschoben werden soll, wird als Kopie bezeichnet.