Suchergebnisse für Anfrage "assembly"
Atomic-Operationen, std :: atomic <> und Reihenfolge der Schreibvorgänge
GCC kompiliert dies: #include <atomic> std::atomic<int> a; int b(0); void func() { b = 2; a = 1; } dazu: func(): mov DWORD PTR b[rip], 2 mov DWORD PTR a[rip], 1 mfence ret Also, um die Dinge für mich zu klären: Ist jeder andere Thread, der ...
Wie speichert GMP seine Ganzzahlen in einer beliebigen Anzahl von Bytes?
2 ^ 64 ist noch weit von der "Unendlichkeit" entfernt, mit der mein RAM / meine Festplatte umgehen kann ... Zunächst frage ich mich, wie GMP mit Speicher / Prozessor zusammenarbeitet, da es eine Art zwielichtige Optimierungen vornimmt ... Ich ...
Plain C ++ Code 10-mal schneller als der Inline-Assembler. Warum
Diese beiden Code-Schnipsel bewirken dasselbe: Sie fügen zwei Float-Arrays zusammen und speichern das Ergebnis wieder in ihnen. Inline Assembler: void vecAdd_SSE(float* v1, float* v2) { _asm { mov esi, v1 mov edi, v2 movups xmm0, [esi] movups ...
NASM beim Kompilieren von x86_64-ASM-Labeladressen in Mach-O um 256 Byte reduziert, wenn mehrere DB-Deklarationen verwendet werden?
urz gesagt, wenn ich mehreredb Abschnitte in meinem.datam Abschnitt @ sind die kompilierten Adressen / Bezeichnungen deaktiviert, wenn sie von NASM kompiliert werden. In meinen Tests sind sie in der resultierenden Mach-O-Binärdatei um 256 Byte ...
Wie verwende ich die relative RIP-Adressierung in einem 64-Bit-Assembly-Programm?
Wie verwende ich die relative RIP-Adressierung in einem Linux-Assembly-Programm für die AMD64-Architektur? Ich suche ein einfaches Beispiel (ein Hello World-Programm), das den relativen Adressierungsmodus AMD64 RIP verwendet. Zum Beispiel würde ...
Wie kann mit GCC ein minimaler BIOS-Hallo-Welt-Bootsektor erstellt werden, der von einem USB-Stick auf echter Hardware funktioniert?
Ich habe es geschafft, einen minimalen Bootsektor zu erstellen, der mit QEMU 2.0.0 Ubuntu 14.04 funktioniert: .code16 .global _start _start: cli mov $msg, %si mov $0x0e, %ah loop: lodsb or %al, %al jz halt int $0x10 jmp loop halt: hlt msg: ...
print int as ascii in der 64-Bit-Assembly bei & t Gleitkommazahlenfehler
Ich habe ein Solo-Programm geschrieben, um herauszufinden, wie das geht. Früher habe ich der zu druckenden Zahl 48 hinzugefügt, aber jetzt, wenn ich Zahlen größer als 9 bekomme, reicht das nicht mehr aus. So sollte das folgende Programm 23 in ...
GCC 4.4: Bereichsprüfung bei switch / case-Anweisung in gcc vermeiden?
Dies ist nur ein Problem in GCC-Versionen vor 4.4, das wurde in GCC 4.5 behoben. [https://gcc.gnu.org/bugzilla/show_bug.cgi?id=43462] Ist es möglich, dem Compiler mitzuteilen, dass die in einem Switch verwendete Variable in die angegebenen ...
TASM 1.4 - Ändern der Hintergrundfarbe, ohne den Bildschirm zu löschen?
Ich benutze Tasm 1.4. Ich versuche, die Farbe des Hintergrunds und des Texts zu ändern, ohne den vorherigen Text zu löschen, aber es endet immer mit dem Löschen des vorherigen Texts, obwohl die Farben geändert wurden. Beispielsweise mov ah,09h ...
Verhindert SFENCE, dass der Speicherpuffer Änderungen vor MESI versteckt?
Wenn ein Core schreibt, aber die Cache-Zeile in seinem L1 nicht vorhanden ist, schreibt er in den Speicherpuffer. Ein anderer Core fordert diese Cache-Zeile an. MESI kann die Aktualisierung des Speicherpuffers nicht sehen und gibt die nicht ...