Maszyna stosowa

Z Wikipedii, wolnej encyklopedii
Skocz do: nawigacja, szukaj

Maszyna stosowa to maszyna (procesor bądź maszyna wirtualna), w której podstawowe operacje prowadzi się na stosie, nie zaś na rejestrach.

Liczenie pierwiastków równania kwadratowego na przykładowej maszynie stosowej (pomijając sprawdzenie czy w ogóle istnieją pierwiastki rzeczywiste):

Operacja Stos (tylko część używana w algorytmie)
push memory(A)
push memory(C)
push 4
mul
mul
push memory(B)
dup
mul
sub
sqrt
dup
push memory(B)
neg
add
xchg
push memory(B)
neg
sub
push memory(A)
push 2
mul
xchg
div
pop memory(X1)
push memory(A)
push 2
mul
xchg
div
pop memory(X2)

Argument znajdują się w komórkach pamięci A, B i C. Wynik znajduje się w komórkach pamięci X1 i X2.

Porównaj z tym samym algorytmem na maszynie rejestrowej.

Większość maszyn wirtualnych to maszyny stosowe. Maszyną stosową był transputer oraz polski minikomputer Mera 400. Także rejestry koprocesorów arytmetycznych z serii x87 są zorganizowane w stos.