Warum muss nicht nur eine Bool + -Rendite funktionieren, um Platz über RBP zuzuweisen? [Duplikat]

Post a reply

Smilies
:) :( :oops: :chelo: :roll: :wink: :muza: :sorry: :angel: :read: *x) :clever:
View more smilies

BBCode is ON
[img] is ON
[flash] is OFF
[url] is ON
Smilies are ON

Topic review
   

Expand view Topic review: Warum muss nicht nur eine Bool + -Rendite funktionieren, um Platz über RBP zuzuweisen? [Duplikat]

by Anonymous » 23 Apr 2025, 09:13

Ich spiele mit der Betrachtung einer Montage nach einer einfachen Funktion: < /p>

Code: Select all

bool magic()
{
bool j = false;
return j;
}
< /code>
Wenn ich den Montagecode von x86 GCC 11.4 (ohne Optimierungen) betrachte Ich sehe Folgendes: < /p>
magic():
push    rbp
mov     rbp, rsp
mov     BYTE PTR [rbp-1], 0
movzx   eax, BYTE PTR [rbp-1]
pop     rbp
ret
Meine Frage ist, warum gibt es keine Sub -RSP, 1 , um Platz für die Variable zuzuweisen? Wenn ich meiner Kompilierzeile -m32 hinzufüge, sehe ich Sub ESP, 16 , um Platz zu erhalten. Gibt es etwas Besonderes im 64 -Bit -Modus, den ich fehlt?

Top