Maszyna stosowa
Przejdź do nawigacji
Przejdź do wyszukiwania
Szablon:Dopracować 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.