assembly

Assemblersprache (asm) Programmierfragen. Achten Sie darauf, auch mit dem Prozessor und / oder Befehlssatz, die Sie verwenden, sowie den Assembler TAG. WARNUNG: Verwenden Sie für .NET-Assemblies stattdessen das Tag [.net-assembly]. Verwenden Sie für Java ASM stattdessen das Tag [java-bytecode-asm].
3
Antworten

Warum erzeugt gcc anstelle von memcpy ein memove zum Kopieren eines std :: vector?

Mit gcc 5.3 erzeugen beide Funktionen im folgenden Beispiel einen Aufruf von memmove . Wäre es nicht angebracht, ein memcpy zu erzeugen? %Vor% Beispiel für godbolt .     
12.05.2016, 00:09
3
Antworten

Warum gibt der GCC-Disassembler zusätzlichen Speicherplatz für lokale Variablen frei?

Ich habe eine einfache Funktion in C geschrieben, %Vor% Wenn ich es im Disassembler von gdb zerlege, gibt es folgende Demontage. %Vor% Sehen Sie sich jetzt Zeile drei an, 0x08048467 <+3>: sub xor %gs:0x14,%eaxx10,%esp , ich...
01.01.2014, 03:15
5
Antworten

GCC-Inline-Assemblierung mit Anweisungen verwenden, die Sofortwerte annehmen

Das Problem Ich arbeite an einem benutzerdefinierten Betriebssystem für einen ARM Cortex-M3-Prozessor. Um mit meinem Kernel zu interagieren, müssen Benutzer-Threads einen SuperVisor Call (SVC) -Befehl erzeugen (früher bekannt als SWI, für Sof...
07.07.2012, 18:08
3
Antworten

MWAIT vs HALT in Bezug auf Effizienz

Ich wecke ein Wunder in Bezug auf MONITOR-MWAIT vs HLT Anweisungen. Beide halten den Prozessor an, beide wachen bei verschiedenen externen Triggern auf (Interrupts usw.). In meinen Experimenten funktionieren HLT und MWAIT fast gleich, wenn ma...
20.11.2012, 01:44
2
Antworten

Ist mov% esi,% esi ein no-op oder nicht auf x86-64?

Ich bin etwas verwirrt über den Kommentar in einer der Header-Dateien für den Linux-Kernel, arch / x86 / include / asm / nops.h . Es besagt, dass    & lt; ... & gt; Die folgenden Anweisungen sind NICHT Nops im 64-Bit-Modus, für den 64-Bit-Mo...
11.07.2011, 17:38
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
11
Antworten

Klassische Assemblersprachentexte ohne x86?

Ich suche nach Texten, die die Prinzipien der Baugruppenprogrammierung ausführlich behandeln und nicht x86 als Zielarchitektur verwenden. Ich habe keine neuen Bücher wie diese gefunden, aber ich würde erwarten, dass es in den siebziger und achtz...
27.11.2009, 07:57
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