а как понять "длина стека и ссылку на стек". длина стека определяется страницей памяти (если не указан конкретный размер) , ссылка на текущую веохушку стека определяет регистр esp. какими из этих двух понятий ты оперируешь при вызове системной функции вывода строки?
В том коде, что я писал выше buff находится не в стеке, а просто в выделенной для него (буфера) памяти в сегменте данных. Место для него зарезервировано отдельно директивой db размер dup (?).
Но ведь перед выполнением программа выделяет участок памяти и отдает кусочки этой памяти под переменные метки итд, разве их нельзя назвать кусочками стека?
в ассемблере это участок памяти управляемый хардварным (с помощью инструкций и регистрами самого cpu) путем. на с/спп и остальных ЯВУ есть методв создания программного стека и механизмов его управления (положить/забрать, сдвинуть указатель верхушки)