Istnieje wiele mikrokontrolerów niskiego poziomu, które mają stosy sprzętowe do obsługi wywołań / zwrotów i przerwań podprogramów, ale utrudniają, jeśli nie niemożliwe, przechowywanie tam danych (zmiennych), a wdrożenie stosu danych czysto programowych byłoby strasznie nieefektywne. 8051 jest jednym klasycznym przykładem, a niskiej klasy PIC (PIC12 / PIC16) są kolejnym. Na tych komputerach stos danych jest emulowany przez przypisanie statycznych lokalizacji przechowywania dla zmiennych automatycznych, przy czym ilość ponownego użycia tych lokalizacji zależy od zaawansowania kompilatora.
Zauważ, że jeśli emulacja stosu jest wykonywana w ten sposób, oznacza to, że rekurencja - funkcja, która wywołuje siebie bezpośrednio lub pośrednio - nie działa, ponieważ każde wystąpienie funkcji wykorzystuje te same lokalizacje statyczne dla swoich rzekomo „prywatnych” zmiennych. Niektóre kompilatory pozwalają na ograniczone użycie rekurencji (zwykle realizowane za pomocą #pragma
pewnego rodzaju), co spowoduje, że utworzy prawdziwy stos danych, bez względu na to, jak bardzo to spowalnia.
Nawiasem mówiąc, istnieją architektury procesorów, które w ogóle nie miały stosu sprzętu, nawet do obsługi podprogramów / przerwań, w tym DEC PDP-8 i IBM System / 360. Na tych komputerach PC (adres zwrotny) i rejestr statusu (dla przerwań) były zapisywane w rejestrach lub lokalizacjach pamięci, ale w każdym przypadku, o którym myślę, maszyna miała również wystarczająco elastyczne tryby adresu, które ułatwiły utworzenie stosu z oprogramowaniem.