Maszyna stosowa
Wygląd
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.