Als «x86» getaggte Fragen

83
Die Verwendung von gdb für einstufigen Assembler-Code außerhalb der angegebenen ausführbaren Datei führt zu dem Fehler "Grenzen der aktuellen Funktion können nicht gefunden werden".

Ich bin außerhalb der ausführbaren Zieldatei von gdb und habe nicht einmal einen Stapel, der diesem Ziel entspricht. Ich möchte sowieso in einem Schritt arbeiten, damit ich überprüfen kann, was in meinem Assemblycode vor sich geht, da ich kein Experte für x86-Assembly bin. Leider weigert sich gdb,...

71
Erweitertes REP MOVSB ​​für memcpy

Ich möchte erweitertes REP MOVSB ​​(ERMSB) verwenden, um eine hohe Bandbreite für eine benutzerdefinierte zu erhalten memcpy. ERMSB wurde mit der Ivy Bridge-Mikroarchitektur eingeführt. Weitere Informationen finden Sie im Abschnitt "Erweiterter REP MOVSB- und STOSB-Betrieb (ERMSB)" im...

71
Wo ist die Sperre für ein std :: atomic?

Wenn eine Datenstruktur mehrere Elemente enthält, kann die atomare Version nicht (immer) sperrfrei sein. Mir wurde gesagt, dass dies für größere Typen gilt, da die CPU die Daten nicht atomar ändern kann, ohne eine Art Sperre zu verwenden. zum Beispiel: #include <iostream> #include...

69
Was bedeutet die Anweisung "Sperren" in der x86-Assembly?

Ich habe eine x86-Assembly in Qts Quelle gesehen: q_atomic_increment: movl 4(%esp), %ecx lock incl (%ecx) mov $0,%eax setne %al ret .align 4,0x90 .type q_atomic_increment,@function .size q_atomic_increment,.-q_atomic_increment Durch Googeln wusste ich, dass lockAnweisungen dazu führen, dass die...

8
Registriert vzeroall Null ymm16 bis ymm31?

Die Dokumentation für vzeroallerscheint inkonsistent. Die Prosa sagt: Der Befehl setzt den Inhalt aller XMM- oder YMM-Register auf Null. Der Pseudocode unten dass, zeigt jedoch, daß in 64-Bit - Modus - Register ymm0durch ymm15betroffen sind: IF (64-bit mode) limit ←15 ELSE limit ← 7 FOR i...