No, ezt most amit irtatok, megneztem egy kicsit jobban: a thumb1 utasitaskeszlet az [sp]-hez kepest tud 8 bitnyit cimenzni, es csak is felfele es azt is csak word access-el. Azaz ez az ami egy 16 bites utasitasba belefer. Minden masra ott a ket v tobb utasitasos valtozat, viszont ott meg egy altalanos {r0, ... r7} regiszterhez kepest csak 6 bitnyi relativ cimzest lehet csinalni, azt is csak felfele (azaz byte access-nel 64 bytenyi, halfworld-nel 128 bytenyi es world accessnel meg 256bytenyi cimteret lathat be a proci egyszeruen). Ez tenyleg nem sok, de vegulis osszessegben igy 1kbyte-nyi cimter all rendelkezesre az automatikus valtozok szamara. Az meg annyira nem keves, foleg ha azt nezzuk hogy ezt a stack frame-t minden egyes blokkra (scope-ra) valojaban egyszeruen letre lehet hozni (sub sp, #...), le lehet bontani (add sp, #...), es tudjuk hasznalni (ldr r0, [sp, #...], str r1 [sp, #...]).
Itt ezekben a peldakban es/vagy konkret esetekben meg messze nem ertem el az 1k-nyi memoriat, inkabb ilyen 500-600 byteok voltak maximum.
A masik dolog, meg az az hogy pont az arm-nel a fuggvenyhivas az nem is igenyel stack-muveletet, tehat oke hogy "fuggvenyeket hivogatunk", de az az lr/pc-n keresztul valosul meg. Igy egy scope-ba valo belepes es kilepes az a stack szemszogebol nezve nem kulonbozik, nem is kulonbozhet egy fuggvenyhivastol.