Krótka odpowiedź: Tak, 16 lub 32 bitów. I, dla x86-64, 64 bity.
Podstawowymi przyczynami stosu są powroty z zagnieżdżonych wywołań funkcji i zapisywanie/przywracanie wartości rejestrów. Jest również zwykle używany do przekazywania parametrów i wyników funkcji powrotu. Z wyjątkiem najmniejszych parametrów, elementy te mają zazwyczaj taki sam rozmiar w zależności od projektu procesora, a mianowicie wielkość rejestru wskaźnika instrukcji. Dla 8088/8086 ma 16 bitów. Dla 80386 i następców jest to 32-bitowy. Dlatego nie ma sensu posiadanie instrukcji stosu, które działają w innych rozmiarach.
Uwzględniono także rozmiar danych na magistrali pamięci. Pobranie lub zapisanie słowa zajmuje tyle samo czasu, co bajt. (Z wyjątkiem 8088, który ma rejestry 16-bitowe, ale 8-bitową magistralę danych). RównieŜ w grę wchodzi wyrównanie. Stos powinien być wyrównany do granic słów, aby każda wartość mogła zostać pobrana jako jedna operacja pamięci. Kompromis jest zazwyczaj podejmowany w celu zaoszczędzenia czasu na oszczędzanie pamięci. Aby przekazać jeden bajt jako parametr, zwykle używane jest jedno słowo. (Lub, w zależności od optymalizacji dostępnej dla kompilatora, użyjemy jednego rejestru o wielkości słowa, unikając całego stosu.)
To stwierdzenie stosuje się tylko w trybie 32-bitowym, można również naciskać/popować 2-bajtowe elementy. – harold