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

Programme in C++. Entwicklerforum
Anonymous
 Warum muss nicht nur eine Bool + -Rendite funktionieren, um Platz über RBP zuzuweisen? [Duplikat]

Post 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?

Quick Reply

Change Text Case: 
   
  • Similar Topics
    Replies
    Views
    Last post