Als «assembly» getaggte Fragen

75
Was sind .S-Dateien?

Ich habe .SDateien in verschiedenen Projekten gesehen, beispielsweise im Linux-Kernel, im FreeBSD-Kernel oder in einigen anderen Projekten. Was machen diese Dateien und warum können wir .cstattdessen keine Dateien haben ?

73
C / C ++ - Funktionsdefinitionen ohne Assembly

Ich habe immer gedacht, dass Funktionen wie printf()im letzten Schritt mithilfe der Inline-Assembly definiert werden. So tief im Darm von stdio.h steckt ein asm-Code, der der CPU tatsächlich sagt, was zu tun ist. Ich erinnere mich zum Beispiel, dass es in dos implementiert wurde, indem zuerst...

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
Warum generiert die Verwendung des ternären Operators zur Rückgabe einer Zeichenfolge einen erheblich anderen Code als die Rückgabe in einem äquivalenten if / else-Block?

Ich habe mit dem Compiler Explorer gespielt und bin auf ein interessantes Verhalten mit dem ternären Operator gestoßen, wenn ich so etwas verwendet habe: std::string get_string(bool b) { return b ? "Hello" : "Stack-overflow"; } Der vom Compiler generierte Code dafür (Clang Trunk, mit -O3) lautet...

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

10
Greifen Sie in WebAssembly auf das DOM zu

Ich habe kürzlich begonnen, WebAssembly für einige meiner Projekte zu verwenden. Ich mache das, weil ich gehört habe, dass Wasm schneller ist als JavaScript. Als ich mein erstes Wasm-Projekt startete, stellte ich fest, dass ich nicht wusste, wie ich das DOM in C ++ manipulieren sollte. Gibt es eine...