@Sk121312 Кстати вот пример, где можно посмотреть на использование стека.
1) Берем программу на C.
2) Компилируем ее gcc с ключём -S.
3) Изучаем полученную после компиляции программу на ассемблере.
Видим такие фрагменты:
movq -16(%rbp), %rax
addq $19, %rax
movq %rax, %rdi
call puts@PLT
те данные, которые вытаскиваем из памяти через rbp - компилятор решил сохранить не в сегменте данных, а в стеке!