Suchergebnisse für Anfrage "x86-64"

4 die antwort

Ist eine Vorzeichen- oder Nullerweiterung erforderlich, wenn einem Zeiger für das x86-64-ABI ein 32-Bit-Offset hinzugefügt wird?

Zusammenfassung: Ich habe mir den Assembly-Code angesehen, um meine Optimierungen zu steuern und beim Hinzufügen von int32 zu einem Zeiger viele Vorzeichen- oder Nullerweiterungen zu sehen. void Test(int *out, int offset) { out[offset] = 1; ...

2 die antwort

Parsing Call and Ret mit ptrace.

Ich versuche, alle Calls and Rets einer ausführbaren Datei mit ptrace zu analysieren. Anpassung des x64opcode [http://ref.x86asm.net/coder64.html], Ich habe Opcodes für @ gefundCalls: 0xe8 und fürRets: 0xc3, 0xc2, 0xca, 0xcb. Seit ich sie ...

2 die antwort

NEON, SSE und Interleaving Loads vs Shuffles

Ich versuche den Kommentar von "Iwillnotexist Idonotexist" bei @ zu versteh SIMD-Optimierung von cvtColor mit ARM NEON intrinsics [https://stackoverflow.com/q/24977272]: ... warum verwenden Sie nicht die ARM NEON-Intrisics, die der ...

TOP-Veröffentlichungen

2 die antwort

So drucken Sie einen Gleitkomma mit einfacher Genauigkeit mit printf

Ich versuche, eine Gleitkommazahl in einer x86_64-Assembly zu drucken, aber es wird nur der Wert Null ausgegeben. Dazu gibt es schon ein paar fragen. Man schien gelöst zu sein, indem man dafür sorgte, dassSie legen die Anzahl der verwendeten ...

6 die antwort

Auf welchen Plattformen löst eine Ganzzahl dividiert durch Null eine Gleitkomma-Ausnahme aus?

Bei einer anderen Frage fragte sich jemand, warum sie einen "Gleitkomma-Fehler" bekamen, obwohl sie in ihrem C ++ - Programm eine Ganzzahl-Division durch Null hatten. Darum entstand eine Diskussion mit der Behauptung, dass Gleitkomma-Ausnahmen ...

2 die antwort

ufruf von printf in erweitertem Inline-A

Ich versuche, dieselbe Zeichenfolge zweimal in Extended Inline ASM in @ auszugebe GCC, unter 64-Bit-Linux. int main() { const char* test = "test\n"; asm( "movq %[test], %%rdi\n" // Debugger shows rdi = *address of string* "movq $0, %%rax\n" ...

2 die antwort

SSE: nicht ausgerichtetes Laden und Speichern, das die Seitengrenze überschreitet

Ich habe irgendwo gelesen, dass vor dem Ausführen eines nicht ausgerichteten Ladens oder Speicherns neben der Seitengrenze (z. B. mit _mm_loadu_si128 / _mm_storeu_si128 intrinsics) sollte der Code zuerst prüfen, ob der gesamte Vektor (in diesem ...

4 die antwort

Warum benötigen wir die Stapelzuordnung, wenn wir eine rote Zone haben?

Ich habe folgende Zweifel: Wie wir wissen, gibt uns System V x86-64 ABI einen Bereich mit fester Größe (128 Byte) im Stack-Frame, die sogenannte Redzone. Aus diesem Grund müssen wir beispielsweise nicht @ verwendesub rsp, 12. Mach einfachmov ...

2 die antwort

x86_64: ist IMUL schneller als 2x SHL + 2x ADD?

Beim Betrachten der von Visual Studio (2015U2) in @ erstellten Assemb/O2 (release) mode Ich habe gesehen, dass dieses 'handoptimierte' Stück C-Code wieder in eine Multiplikation übersetzt wird: int64_t calc(int64_t a) { return (a << 6) + (a << ...

4 die antwort

C unsigned long long und imulq

Als jemand, der neu in der Montage ist, verwende ich gcc für das Reverse Engineering. Aber jetzt bin ich auf ein witziges Problem gestoßen: Ich versuche, zwei 64-Bit-Ganzzahlen für x86-64 zu multiplizieren. Der C-Code sieht wie ...