Als «assembly» getaggte Fragen

Fragen zur Assembler-Programmierung (asm). Stellen Sie sicher, dass Sie auch den Prozessor und / oder den Befehlssatz, den Sie verwenden, sowie den Assembler markieren. WARNUNG: Verwenden Sie für .NET-Assemblys stattdessen das Tag [.net-Assembly]. Verwenden Sie für Java ASM stattdessen das Tag [java-bytecode-asm].

6
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 Intel-Optimierungshandbuch, wenn Sie nicht wissen, was ERMSB ist. Ich weiß nur, dass ich …
71 c  gcc  assembly  x86  memcpy 


4
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 CPU den Bus sperrt, aber ich weiß nicht, wann die CPU den Bus freigibt …
69 c++  qt  assembly  x86 


1
Benötigen x86-Anweisungen ihre eigene Codierung sowie alle ihre Argumente, um gleichzeitig im Speicher vorhanden zu sein?
Ich versuche herauszufinden, ob es möglich ist, eine Linux-VM auszuführen, deren RAM nur von einer einzigen physischen Seite unterstützt wird. Um dies zu simulieren, habe ich den Handler für verschachtelte Seitenfehler in KVM so geändert, dass das vorhandene Bit aus allen NPT-Einträgen (Nested Page Table) entfernt wird, mit Ausnahme desjenigen, …

1
Warum füllt die GCC-Aggregatinitialisierung eines Arrays das Ganze zuerst mit Nullen, einschließlich Nicht-Null-Elementen?
Warum füllt gcc das gesamte Array mit Nullen anstatt nur mit den verbleibenden 96 Ganzzahlen? Die Nicht-Null-Initialisierer befinden sich alle am Anfang des Arrays. void *sink; void bar() { int a[100]{1,2,3,4}; sink = a; // a escapes the function asm("":::"memory"); // and compiler memory barrier // forces the compiler to …





2
Unterstützt moderne PC-Videohardware den VGA-Textmodus in HW oder emuliert das BIOS ihn (mit Systemverwaltungsmodus)?
Was passiert wirklich auf moderner PC-Hardware, die im 16-Bit-Legacy-BIOS-MBR-Modus gestartet wird, wenn Sie ein Byte wie '1'(0x31) im VGA-Text- Framebuffer (Modus 03) unter physischer linearer Adresse speichern B8000? Wie langsam ist ein mov [es:di], eaxGeschäft mit der MTRR für diese Region auf UC eingestellt? ( Experimentelle Tests auf einem Kaby …

2
Ist der L2 HW Prefetcher wirklich hilfreich?
Ich bin am Whiskey Lake i7-8565U und analysiere die Leistungsindikatoren und die Zeit für das Kopieren von 512 KiB Daten (doppelt so viel wie die L2-Cache-Größe) und habe einige Missverständnisse in Bezug auf die Arbeit des L2 HW-Prefetchers. Im Intel Manual Vol.4 MSR gibt es MSR, 0x1A4dessen Bit 0 zur …


2
Was verursacht diese hohe Variabilität in Zyklen für eine einfache enge Schleife mit -O0, aber nicht -O3 auf einem Cortex-A72?
Ich führe einige Experimente durch, um hochkonsistente Laufzeiten für einen Code zu erhalten. Der Code, den ich gerade zeitlich festlege, ist eine ziemlich willkürliche CPU-gebundene Arbeitslast: int cpu_workload_external_O3(){ int x = 0; for(int ind = 0; ind < 12349560; ind++){ x = ((x ^ 0x123) + x * 3) % …


Durch die Nutzung unserer Website bestätigen Sie, dass Sie unsere Cookie-Richtlinie und Datenschutzrichtlinie gelesen und verstanden haben.
Licensed under cc by-sa 3.0 with attribution required.