Strojový kód PDP-8 má k dispozici instrukci JMS pro volání podprogramu, ale nemá instrukci pro návrat. Instrukce JMS funguje tak, že návratovou adresu ukládá do prostoru rutiny která je volána. Návrat z rutiny lze uskutečnit pomocí instrukce skoku JMP.
…
JMS ALFA
…
/ Podprogram (subroutine) ALFA
ALFA, 0000 / ← zde se ukládá návratová adresa
/ … tělo podprogramu
JMP I ALFA / návrat z podprogramu skokem na návratovou adresuPříklad 63.4. Příklad podprogramu pro PDP-8
1 / File db/pdp8.code/subroutine.pal -*- mode:asm; -*-
2
3 0400 *0400
4 00400 7000 START, NOP /...
5 00401 4206 JMS ALFA
6 00402 7000 NOP /...
7 00403 4206 JMS ALFA
8 00404 7000 NOP /...
9 00405 7402 HLT
10
11 / Podprogram (subroutine) ALFS
12 00406 0000 ALFA, 0000 / místo pro uložení návratové adresy
13 00407 7000 NOP /... kód podprogramu
14 00410 5606 JMP I ALFA / návrat skokem na uloženou návratovou adresu
15 $
No detected errors
Tento způsob realizace podprogramů neumožňuje rekurzi. Pokud bychom rekurzi potřebovali, musíme si zásobník návratových adres sami vytvořit a udržovat.
