Почему функционирует с помощью только возврата Bool +, чтобы выделять какое -либо место через RBP? [дублировать]C++

Программы на C++. Форум разработчиков
Anonymous
Почему функционирует с помощью только возврата Bool +, чтобы выделять какое -либо место через RBP? [дублировать]

Сообщение Anonymous »

Я играю с просмотром некоторой сборки для простой функции: < /p>

Код: Выделить всё

bool magic()
{
bool j = false;
return j;
}
< /code>
Когда я смотрю код сборки из x86 gcc 11.4 (без оптимизации) я вижу это: < /p>
magic():
push    rbp
mov     rbp, rsp
mov     BYTE PTR [rbp-1], 0
movzx   eax, BYTE PTR [rbp-1]
pop     rbp
ret
Мой вопрос: почему нет Sub RSP, 1 для распределения пространства для переменной? Если я добавлю -M32 в свою строку компиляции, я вижу Sub ESP, 16 , чтобы получить место. Есть ли что -то особенное около 64 -битного режима, которое мне не хватает?


Подробнее здесь: https://stackoverflow.com/questions/795 ... ace-via-rb

Вернуться в «C++»