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

5
Warum verwendet GCC bei der Implementierung der Ganzzahldivision die Multiplikation mit einer seltsamen Zahl?
Ich habe über divund mulMontagevorgänge gelesen und mich entschlossen, sie in Aktion zu sehen, indem ich ein einfaches Programm in C schrieb: Dateidivision.c #include <stdlib.h> #include <stdio.h> int main() { size_t i = 9; size_t j = i / 5; printf("%zu\n",j); return 0; } Und dann Assembler-Code generieren mit: gcc …


8
Was ist genau der Basiszeiger und der Stapelzeiger? Worauf weisen sie hin?
Verwenden Sie dieses Beispiel aus Wikipedia, in dem DrawSquare () DrawLine () aufruft. (Beachten Sie, dass dieses Diagramm unten hohe Adressen und oben niedrige Adressen enthält.) Könnte mir jemand erklären was ebpund espin diesem Zusammenhang sind? Nach allem, was ich sehe, würde der Stapelzeiger immer auf den oberen Rand des …
225 c++  c  assembly  x86 

4
Warum würde die Einführung nutzloser MOV-Anweisungen eine enge Schleife in der x86_64-Assembly beschleunigen?
Hintergrund: Beim Optimieren von Pascal- Code mit eingebetteter Assemblersprache bemerkte ich eine unnötige MOVAnweisung und entfernte sie. Zu meiner Überraschung wurde mein Programm durch das Entfernen der nicht erforderlichen Anweisungen langsamer . Ich fand heraus, dass das Hinzufügen beliebiger, nutzloser MOVAnweisungen die Leistung noch weiter steigerte . Der Effekt ist …


24
Ausführbare Datei vor Reverse Engineering schützen?
Ich habe darüber nachgedacht, wie ich meinen C / C ++ - Code vor Demontage und Reverse Engineering schützen kann. Normalerweise würde ich dieses Verhalten in meinem Code niemals selbst dulden. Das aktuelle Protokoll, an dem ich gearbeitet habe, darf jedoch niemals überprüft oder verständlich sein, um die Sicherheit verschiedener …
210 c++  c  obfuscation  assembly 

3
Warum generiert GCC eine so radikal unterschiedliche Baugruppe für nahezu denselben C-Code?
Beim Schreiben einer optimierten ftolFunktion habe ich ein sehr merkwürdiges Verhalten festgestellt GCC 4.6.1. Lassen Sie mich Ihnen zuerst den Code zeigen (aus Gründen der Klarheit habe ich die Unterschiede markiert): fast_trunc_one, C: int fast_trunc_one(int i) { int mantissa, exponent, sign, r; mantissa = (i & 0x07fffff) | 0x800000; exponent …


7
Aktuelle Montageanleitung in GDB anzeigen
Ich mache ein Debugging auf Assembly-Ebene in GDB. Gibt es eine Möglichkeit, GDB dazu zu bringen, mir die aktuelle Montageanweisung auf dieselbe Weise anzuzeigen wie die aktuelle Quellzeile? Die Standardausgabe nach jedem Befehl sieht folgendermaßen aus: 0x0001433f 990 Foo::bar(p); Dies gibt mir die Adresse des aktuellen Befehls, aber ich muss …
179 assembly  gdb 

13
Kann num ++ für 'int num' atomar sein?
Im Allgemeinen ist for int num, num++(oder ++num) als Lese-, Änderungs- und Schreiboperation nicht atomar . Aber ich sehe oft, dass Compiler, zum Beispiel GCC , den folgenden Code dafür generieren ( versuchen Sie es hier ): num++Können wir daraus schließen, dass Zeile 5, die einer Anweisung entspricht, in diesem …


13
Wie sind Alltagsmaschinen programmiert?
Wie sind alltägliche Maschinen (weniger Computer und mobile Geräte als Geräte, Digitaluhren usw.) programmiert? Welche Art von Code fließt in die Programmierung eines Coca-Cola-Automaten ein? Wie akzeptiert meine Kaffeemaschine eine vorprogrammierte Zeit und beginnt Stunden später, wenn diese Zeit eintrifft, mit dem Brühen einer Kanne Kaffee? Haben diese Arten von …


7
Wie funktioniert dieser Milw0rm-Heap-Sprüh-Exploit?
Normalerweise habe ich keine Schwierigkeiten, JavaScript-Code zu lesen, aber für diesen kann ich die Logik nicht herausfinden. Der Code stammt von einem Exploit, der vor 4 Tagen veröffentlicht wurde. Sie finden es bei milw0rm . Hier ist der Code: <html> <div id="replace">x</div> <script> // windows/exec - 148 bytes // http://www.metasploit.com …


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.