Was ist eine kurze x86-Befehlssequenz, um das xmm0-Register nach eax und edx zu verschieben?X86 Opcodes zum Verschieben von xmm-Registern in allgemeine Register
Antwort
Welche Teile von xmm0 möchten Sie?
movd eax, xmm0
pextrd edx, xmm0, 1 ; SSE4.1
bekommt die niedrigen 64bits von xmm0 in edx:eax
.
In 64-Bit-Code ist movq rax, xmm0
/shld rdx, rax, 32
möglicherweise besser als pextrd
, und SSE4.1 ist nicht erforderlich.
Siehe das x86 Tag Wiki für Befehlssatzreferenzen und andere Sachen.
Weitere Informationen zu den zu verwendenden Anweisungen finden Sie unter Agner Fog's excellent Optimizing Assembly guide.
Suche nach den Bits von 64-Bit-Doppel in xmm0 auf x86 (32bit). – tgiphil
@tgiphil: ok, die niedrige 64 ist was ich vermutete. Gibt es einen Grund, warum du diese Antwort nicht akzeptiert hast? Benötigen Sie eine 32bit SSE2-Version mit einer Vektorverschiebung oder Shuffle, um das zweite Wort für ein anderes 'movd' auf Element 0 zu bringen? –
- 1. Assembly: Warum sind einige x86 Opcodes in x64 ungültig?
- 2. Die Lage des EIP und anderen Register in x86-Prozess
- 3. Verwenden von FPU und MMX-Registern als "allgemeine Register"
- 4. XMM-Register zum Stapel schieben
- 5. Montageanleitung mov Register, [Register] [Register]
- 6. Welche Register in einer Funktion sicher sind (x86)
- 7. Wie drucke ich ein Register in der Console x86 Assembly?
- 8. Wie kann ich x86-Flags-Register direkt lesen und schreiben?
- 9. Welches x86-Register bezeichnet die Quelle in der movsb-Anweisung?
- 10. Ist das EBP-Register (Base Frame Pointer) nur zum Debuggen in x86?
- 11. x86 - Anzahl der Register vs Anzahl der reservierten Bits
- 12. Informationen zum niedrigsten Level von x86
- 13. Welche Register werden durch einen Linux x86-64 Funktionsaufruf erhalten
- 14. Wozu dienen diese Opcodes?
- 15. Zum zuletzt aktiven Register in VIM wechseln
- 16. Wie bekomme ich Opcodes von PHP?
- 17. Speichern von zwei x86 32-Bit-Registern im 128-Bit-xmm-Register
- 18. Warum entwickelt Lua intermediate Opcodes?
- 19. Analysieren Opcodes mit Kaitai Struct
- 20. P6 Architektur - Register Umbenennung, führen die begrenzten Benutzer-Register zu mehr Operationen verschwendet/laden?
- 21. x86 Befehlssatz Roadmap
- 22. Windows-Batch-Skript zum Verschieben von Dateien
- 23. Passwortbestätigung zum Verschieben und Löschen von Dateien?
- 24. Druckzeichenfolge von Register in GDB
- 25. x86 Architekturspezifikationen
- 26. Schnellste allgemeine Bibliothek zum maschinellen Lernen?
- 27. In x86-Assembly ist es besser, zwei separate Register für imul zu verwenden?
- 28. Rails allgemeine Methode zum Aktualisieren eines Datenbankfelds
- 29. Strategie zum Komponententest verschieben/kopieren Konstruktoren?
- 30. c Bibliothek x86/x64 Assembler
nicht zwischen verschiedenen Domänen bewegen, außer wenn notwendig –