Динамический массив не проблема:
Код:
for i:=Max_Num-1 downto 0 do
...
Если знаешь номер последнего элемента, его можно поставить на место Max_Num.
А по поводу стека - это решение глупо, сложно и ненадежно. Имхо. Почитать в книгах и статьях про ассемблер.