x86

x86 ist eine Architektur, die von der Intel 8086 CPU abgeleitet ist. Die x86-Familie umfasst die 32-Bit-Architektur IA-32 und 64-Bit x86-64 sowie 16-Bit-Legacy-Architekturen. Fragen zu letzterem sollten mit [x86-16] und / oder [emu8086] getaggt werden. Verwenden Sie das Tag [x86-64], wenn Ihre Frage für 64-Bit x86-64 spezifisch ist. Verwenden Sie für die x86-FPU das Tag [x87]. Für SSE1 / 2/3/4 / AVX * verwenden Sie auch [sse] und alle zutreffenden [avx] / [avx2] / [avx512]
5
Antworten

Der leistungsfähigste Weg, um ein Array von einem anderen zu subtrahieren

Ich habe den folgenden Code, der der Engpass in einem Teil meiner Anwendung ist. Ich ziehe nur Array von einem anderen ab. Beide Arrays haben mehr um 100000 Elemente. Ich versuche einen Weg zu finden, dies leistungsfähiger zu machen. %Vor% H...
15.02.2011, 19:58
4
Antworten

Schreibzugriff auf Adresse möglich (x86 - linux)

Ich möchte erkennen können, wann eine Adresse in den Speicher geschrieben wird - zum Beispiel indem ich einen Callback an einen Interrupt anlege. Weiß jemand wie? Ich möchte das zur Laufzeit machen können (möglicherweise hat gdb diese Funktio...
03.03.2009, 22:54
3
Antworten

Zugriff auf ein Register ohne Inline-Assemblierung mit gcc

Ich möchte den Stack-Pointer-Register-Wert lesen, ohne Inline-Assembly zu schreiben. Der Grund dafür ist, dass ich den Stack-Pointer-Register-Wert einem Element eines Arrays zuweisen möchte, und es fällt mir schwer, auf ein Array zuzugreifen Inl...
20.11.2011, 11:37
2
Antworten

Übertrag / Überlauf und Subtraktion in x86

Ich versuche meinen Kopf um den Überlauf zu wickeln & amp; Tragen Sie Flags in x86. Wie ich es verstehe, können die Flags nur auf eine von vier Arten erzeugt werden (meine Beispiele sind 4-Bit-Zahlen): pos + pos = neg (Überlauf) 0111 +...
23.01.2012, 00:07
4
Antworten

Wie können Sie in der x86-Assembly das Null-Flag (ZF) setzen, ohne eine Vergleichsoperation auszuführen?

Ich habe ein kurzes Stück (x86) Assembly, das ich versuche herauszufinden, was es tut. %Vor% Es sieht wie seine Schleife durch, bis die "JNE" zu falsch auswertet, d. h. das Null-Flag = 0. (möglicherweise setzt es die Zahlen 1, 2, 3 ... in de...
06.12.2011, 16:48
3
Antworten

Wie überprüft man, ob eine vorzeichenbehaftete Ganzzahl neg oder pos ist?

Ich bin neu in der x86-Assemblersprache, ich habe eine signierte Ganzzahl im Register eax gespeichert, und ich möchte überprüfen, ob die Zahl negativ oder positiv ist. Um dies zu tun, habe ich bt Anweisung verwendet, um das erste Bit zu üb...
25.10.2010, 17:57
4
Antworten

Einfachste Möglichkeit, etwas aus dem FPU-Stack zu entfernen

Ich hatte in letzter Zeit Probleme mit FPU Stack Overflows. Ich schaffte es, es zu einer fehlerhaften Bibliotheksfunktion zurück zu verfolgen, die bei jedem Aufruf einen Müllwert auf den FPU-Stapel schiebt und ihn niemals aufräumt. Glückliche...
23.01.2011, 04:59
5
Antworten

rdtsc, zu viele Zyklen

%Vor% Ich habe diesen Code mit gcc mit -O0 -O1 -O2 -O3-Optimierungen kompiliert. Und ich bekomme immer 2000-2500 Zyklen. Kann jemand den Grund für diese Ausgabe erklären? Wie verbringe ich diese Zyklen? Erste Funktion "tick" ist falsch. Das...
30.11.2011, 08:01
2
Antworten

Gibt es ein wirklich funktionierendes Beispiel, das die Vorteile von ILP (Instruction-Level Parallelism) auf x86_64 zeigt?

Wie bekannt CPU ist Pipeline, und es funktioniert am effizientesten, wenn die Reihenfolge der Befehle unabhängig voneinander - dies als ILP (Instruction-Level Parallelism) bekannt: Ссылка Aber gibt es ein wirklich funktionierendes Beispiel,...
02.01.2015, 20:16
4
Antworten

fehlt NICHT in SSE, AVX?

Ist es meine Einbildung, oder fehlt eine Anweisung PNOT von SSE und AVX? Das heißt, eine Anweisung, die jedes Bit im Vektor umlegt. Wenn ja, gibt es eine bessere Möglichkeit, es als PXOR mit einem Vektor aller 1s zu emulieren? Ziemlich...
05.03.2017, 20:50