assembly

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].
3
Antworten

Arm Assembly - Aufrufende Funktion mit mehr als 4 Argumenten

Ich weiß, dass beim Aufruf einer Funktion in Assembly r0 das erste Argument bis r3 als viertes enthält. Ich weiß, dass der Stapelzeiger verwendet wird, wenn er über vier hinausgeht, aber ich bin mir bei den Einzelheiten nicht sicher. Behält r0-r...
06.11.2011, 16:50
1
Antwort

Wann sollten explizite Alignment-Anweisungen in der Assembly verwendet werden?

Ich verbringe etwas Zeit mit der Montageprogrammierung (insbesondere mit Gas) und kürzlich habe ich von der align-Richtlinie erfahren. Ich denke, ich habe die Grundlagen verstanden, aber ich würde gerne ein tieferes Verständnis seiner Natur und...
31.12.2010, 03:46
1
Antwort

Ist es zulässig, eine x64-Funktion mit einem Ein-Byte-Befehl zu beginnen?

Laut masm's macamd64.inc, rex_push_reg ,    ... rex_push_reg muss anstelle von push_reg verwendet werden, wenn es als angezeigt wird   die erste Anweisung in einer Funktion, wie der aufrufende Standard vorschreibt   Diese Funktionen dürfen...
15.06.2017, 09:12
1
Antwort

Warum existiert CLFLUSH in x86?

Ich habe kürzlich von dem Angriff Row Hammer erfahren. Um diesen Angriff auszuführen, muss der Programmierer die komplette Cache-Hierarchie einer CPU für eine bestimmte Anzahl von Adressen löschen. Meine Frage ist: Warum ist CLFLUSH in x8...
05.09.2016, 19:22
1
Antwort

Ist es nützlich, VZEROUPPER zu verwenden, wenn Ihre Programmbibliotheken keine SSE-Anweisungen enthalten?

Ich verstehe, dass es wichtig ist, VZEROUPPER zu verwenden, wenn Sie SSE- und AVX-Code mischen, aber was ist, wenn ich AVX (und gewöhnlichen x86-64-Code) ohne irgendwelche Legacy-SSE-Anweisungen verwende? Wenn ich niemals einen einzelnen S...
27.02.2018, 23:27
1
Antwort

Warum hat time () von time.h keinen syscall zu sys_time?

Ich habe ein sehr einfaches Programm mit den Aufrufen time() geschrieben, um die Verwendung von strace zu verdeutlichen, aber ich habe ein Problem; Der Aufruf time() scheint keinen Syscall zu erzeugen! Ich bin dann in die time() F...
14.01.2018, 17:57
1
Antwort

Mysteriöses printf-Argument beim Zerlegen von c-Programmen

Also ich habe diesen c-code: %Vor% Ich habe es auf ubuntu mit: kompiliert %Vor% Und dann zerlegt es mit: %Vor% Und in main printf () wird wie folgt aufgerufen: %Vor% Was ich gerade frage, ist, was das bedeutet: %Vor% Ich weiß,...
16.05.2015, 15:04
1
Antwort

Cache auf Intel 64bit Maschine aktivieren / deaktivieren: CD Bit immer gesetzt?

Ich versuche, alle Ebenen des Cache für meine Maschine Intel (R) Xeon (R) CPU E5-1650 v2 @ 3,50 GHz in Xen zu deaktivieren. Ich habe ein Tool geschrieben, um den folgenden Assemble-Code aufzurufen, um den Cache zu deaktivieren / aktivieren und d...
21.01.2014, 18:03
2
Antworten

Erzwingen, dass GCC das Wiederholungs-Präfix im Aufruf von memset () verwendet

Ich entwickle eine Anwendung, bei der Leistung entscheidend ist. Ich möchte, dass GCC einige bestimmte Aufrufe in memset () als eine Anweisung mit einem Wiederholungs-Präfix wie "rep stos QWORD PTR es: [rdi], rax" übersetzt. GCC tut dies automat...
25.05.2012, 22:14
1
Antwort

Instruction Level Profiling: Die Bedeutung des Anweisungszeigers?

Was bedeutet die Position des Befehlszeigers beim Profilieren von Code auf der Ebene der Assembly-Anweisung wirklich, da moderne CPUs Befehle nicht seriell oder in Reihenfolge ausführen? Angenommen, der folgende x64-Assembly-Code lautet: %Vor%...
09.06.2013, 13:35