Suchergebnisse für Anfrage "x86-64"

2 die antwort

Ist in x86-64 SysV ABI Müll in hohen Bits von Parameter- und Rückgabewertregistern zulässig?

Das x86-64 SysV ABI legt unter anderem fest, wie Funktionsparameter in Registern übergeben werden (erstes Argument inrdi, dannrsi und so weiter) und wie ganzzahlige Rückgabewerte zurückgegeben werden (inrax und dannrdx für wirklich große ...

2 die antwort

Unterschied zwischen movq und movabsq in x86-64

Ich bin ein Neuling hier und fange gerade an, Assemblersprache zu lernen. Also bitte korrigiere mich, wenn ich falsch liege oder wenn dieser Beitrag keinen Sinn ergibt, werde ich ihn löschen. Ich spreche über Anweisungen zum Verschieben von ...

4 die antwort

Schiebt jeder PUSH-Befehl ein Vielfaches von 8 Bytes auf x64?

ei x64 überträgt jeder PUSH-Befehl ein Vielfaches von 8 Bytes? Wenn nicht, wie viel schiebt es? Auch wie viel Stapelspeicher verbraucht jeder Funktionsparameter?

TOP-Veröffentlichungen

4 die antwort

Error: Nicht übereinstimmende Operandengröße für 'movq'

Ich versuche die folgende Assembly zu kompilieren ... movq $0x3534373536383235, 0x000000000055638f8 movq $0x55638f8, %rdi retqDaszuers line wirft den FehlerError: operand size mismatch for 'movq' Was macht für mich keinen Sinn, da es sich bei ...

2 die antwort

Wie kann ich gcc mitteilen, dass meine Inline-Assembly einen Teil des Stapels blockiert?

Betrachten Sie die Inline-Assembly wie folgt: uint64_t flags; asm ("pushf\n\tpop %0" : "=rm"(flags) : : /* ??? */);Wie kann ich dem Compiler mitteilen, dass meine Inline-Assembly ein Quadword des Speichers oben im Stapel verstopft, obwohl es ...

2 die antwort

Adresse kanonische Form und Zeiger Arithmetik

Auf AMD64-kompatiblen Architekturen müssen Adressen in kanonischer Form vorliegen, bevor sie dereferenziert werden. Von demIntel manual, Abschnitt ...

4 die antwort

Warum werden Parameter in Registern und nicht auf dem Stapel in der x86-64-Assembly gespeichert?

ei der x86-32-Assembly werden Parameter auf dem Stapel gespeichert, bei der x86-64-Assembly jedoch in Registern. Was ist der Grund dafür?

4 die antwort

Die Verwendung von printf in der Baugruppe führt zu einer leeren Ausgabe

Ich versuche @ zu benutzprintf aus meinem Assembler-Code, dies ist ein minimales Beispiel, das nur @ drucken sollhello zu stdout: .section .rodata hello: .ascii "hello\n\0" .section .text .globl _start _start: movq $hello, %rdi #first parameter ...

4 die antwort

Die Vorteile der Verwendung von 32-Bit-Registern / -Anweisungen in x86-64

Manchmal verwendet gcc ein 32-Bit-Register, wenn ich davon ausgehen würde, dass es ein 64-Bit-Register verwendet. Zum Beispiel der folgende C-Code: unsigned long long div(unsigned long long a, unsigned long long b){ return a/b; } wird mit der ...

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