Maszyna stosowa
Z Wikipedii
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) | A | |||
push memory(C) | C | A | ||
push 4 | 4 | C | A | |
mul | 4C | A | ||
mul | 4AC | |||
push memory(B) | B | 4AC | ||
dup | B | B | 4AC | |
mul | B2 | 4AC | ||
sub | Δ = B2 − 4AC | |||
sqrt | ||||
dup | ||||
push memory(B) | B | |||
neg | − B | |||
add | ||||
xchg | ||||
push memory(B) | B | |||
neg | − B | |||
sub | ||||
push memory(A) | A | |||
push 2 | 2 | A | ||
mul | 2A | |||
xchg | 2A | |||
div | ||||
pop memory(X1) | ||||
push memory(A) | A | |||
push 2 | 2 | A | ||
mul | 2A | |||
xchg | 2A | |||
div | ||||
pop memory(X2) |
Argument znajdują się w komórkach pamięci A, B i C. Wyniki 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.