Wenn Sie sowohl die MOV und LEA Anweisungen in der Montage verwenden, was bedeutet es wirklich, wenn jemand schreibt:Baugruppe Arithmetik?
mov DWORD PTR [esp+4], 0x80484c
lea eax,[ebp-40]
Insbesondere dann, wenn sie die Informationen in den Klammern [] schreiben. Ich weiß, dass Lea Adressen bewegt und Inhalte bewegt, aber wenn sie die Adressen in lea oder mov berechnen, wie funktioniert das eigentlich? Ist es das gleiche wie Zeigerarithmetik in C?
'ist es das gleiche wie Zeigerarithmetik in C' - Nein, ist es nicht. Eine umfassende Antwort finden Sie in jeder anständigen x86 Assembly Dokumentation/Buch und frei verfügbar um. –
Beachten Sie, dass es in 'lea' keinen realen Speicherzugriff gibt: Er berechnet lediglich die Adresse des Operanden und speichert sie. Compiler verwenden es manchmal, um nicht signierte Arithmetik auszuführen - allerdings nicht in diesem speziellen Fall, wie es scheint. –
Nicht nur umfassende Antworten finden Sie in der Montagedokumentation, hier finden Sie viele sehr umfassende und klare Antworten mit einer schnellen Suche. –