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].
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 .
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...
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...
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...
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...
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...
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...
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...
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...
%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...