Unterschied zwischen movq und movabsq in x86-64

Ich bin ein Neuling hier und fange gerade an, Assemblersprache zu lernen. Also bitte korrigiere mich, wenn ich falsch liege oder wenn dieser Beitrag keinen Sinn ergibt, werde ich ihn löschen.

Ich spreche über Anweisungen zum Verschieben von Daten in der x86-64-Intel-Architektur. Ich habe gelesen, dass das reguläremovq -Anweisung kann nur unmittelbare Quelloperanden enthalten, die als 32-Bit-Zweierkomplementzahlen dargestellt werden können, währendmovabsq -Anweisung kann einen beliebigen 64-Bit-Sofortwert als Quelloperand und nur ein Register als Ziel haben.

Könnten Sie das bitte näher erläutern? Bedeutet das, dass ich den 64-Bit-Sofortwert mit dem @ verschieben kanmovabsq Anweisung nur? Und erst ab sofort ins Register? Ich verstehe nicht, wie ich einen 64-Bit-Sofortwert in den Speicher verschieben kann. Oder vielleicht habe ich hier etwas Wichtiges falsch gemacht.

Antworten auf die Frage(2)

Ihre Antwort auf die Frage