Als «x86-64» getaggte Fragen

x86-64 ist eine 64-Bit-Erweiterung der Intel x86-Architektur




5
Warum verwendet GCC bei der Implementierung der Ganzzahldivision die Multiplikation mit einer seltsamen Zahl?
Ich habe über divund mulMontagevorgänge gelesen und mich entschlossen, sie in Aktion zu sehen, indem ich ein einfaches Programm in C schrieb: Dateidivision.c #include <stdlib.h> #include <stdio.h> int main() { size_t i = 9; size_t j = i / 5; printf("%zu\n",j); return 0; } Und dann Assembler-Code generieren mit: gcc …

4
Warum würde die Einführung nutzloser MOV-Anweisungen eine enge Schleife in der x86_64-Assembly beschleunigen?
Hintergrund: Beim Optimieren von Pascal- Code mit eingebetteter Assemblersprache bemerkte ich eine unnötige MOVAnweisung und entfernte sie. Zu meiner Überraschung wurde mein Programm durch das Entfernen der nicht erforderlichen Anweisungen langsamer . Ich fand heraus, dass das Hinzufügen beliebiger, nutzloser MOVAnweisungen die Leistung noch weiter steigerte . Der Effekt ist …




4
Wie funktioniert Rusts 128-Bit-Ganzzahl "i128" auf einem 64-Bit-System?
Rust hat 128-Bit-Ganzzahlen, diese werden mit dem Datentyp i128(und u128für vorzeichenlose Ints) bezeichnet: let a: i128 = 170141183460469231731687303715884105727; Wie macht Rust diese? i128 Werte auf einem 64-Bit-System funktionieren? zB wie rechnet man damit? Da der Wert meines Wissens nicht in ein Register einer x86-64-CPU passen kann, verwendet der Compiler irgendwie …

3
Warum setzen x86-64-Befehle in 32-Bit-Registern den oberen Teil des vollständigen 64-Bit-Registers auf Null?
In der x86-64-Tour der Intel-Handbücher habe ich gelesen Die vielleicht überraschendste Tatsache ist, dass ein Befehl wie beispielsweise MOV EAX, EBXautomatisch die oberen 32 RAXRegisterbits auf Null setzt . In der Intel-Dokumentation (3.4.1.1 Allzweckregister im 64-Bit-Modus in der manuellen Basisarchitektur), die an derselben Quelle zitiert wird, heißt es: 64-Bit-Operanden erzeugen …


4
Warum verwendet Windows64 eine andere Aufrufkonvention als alle anderen Betriebssysteme unter x86-64?
AMD verfügt über eine ABI-Spezifikation, die die auf x86-64 zu verwendende Aufrufkonvention beschreibt. Alle Betriebssysteme folgen ihm, mit Ausnahme von Windows, das über eine eigene x86-64-Aufrufkonvention verfügt. Warum? Kennt jemand die technischen, historischen oder politischen Gründe für diesen Unterschied oder handelt es sich lediglich um ein NIH-Syndrom? Ich verstehe, dass …

10
Warum ist x86 hässlich? Warum wird es im Vergleich zu anderen als minderwertig angesehen? [geschlossen]
Diese Frage passt derzeit nicht zu unserem Q & A-Format. Wir erwarten, dass die Antworten durch Fakten, Referenzen oder Fachwissen gestützt werden, aber diese Frage wird wahrscheinlich zu Debatten, Argumenten, Umfragen oder erweiterten Diskussionen führen. Wenn Sie der Meinung sind, dass diese Frage verbessert und möglicherweise erneut geöffnet werden kann, …

15
System.BadImageFormatException: Datei oder Assembly konnte nicht geladen werden (von installutil.exe)
Ich versuche, einen Windows-Dienst mit InstallUtil.exe zu installieren, und erhalte die Fehlermeldung System.BadImageFormatException: Datei oder Assembly ' {xxx.exe}' oder eine ihrer Abhängigkeiten konnte nicht geladen werden . Es wurde versucht, ein Programm mit einem falschen Format zu laden. Was gibt? BEARBEITEN: (Nicht von OP) Vollständige Nachricht aus dup extrahiert, die …

11
Gleitkomma-Ganzzahl-Berechnungen auf moderner Hardware
Ich mache einige leistungskritische Arbeiten in C ++ und wir verwenden derzeit ganzzahlige Berechnungen für Probleme, die von Natur aus Gleitkommawerte sind, weil "es schneller ist". Dies verursacht eine Menge nerviger Probleme und fügt viel nervigen Code hinzu. Jetzt erinnere ich mich, dass ich gelesen habe, wie langsam Gleitkommaberechnungen ungefähr …

Durch die Nutzung unserer Website bestätigen Sie, dass Sie unsere Cookie-Richtlinie und Datenschutzrichtlinie gelesen und verstanden haben.
Licensed under cc by-sa 3.0 with attribution required.