Page 1 of 1

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

Posted: 23 Apr 2025, 09:13
by Anonymous
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?