računalniški sistemi delta FODPROGRAMI Stran 5-6 Olea NI mo NOx (NO — 1)1 Froceduro za računanje faktoriele bomo napisali kot funkcijo; katere argument Je število N,> rezultat, ki 9a vrne, pa Je faktarjela tega števila. Iržali se bomo zgornjih dveh definicij. 7 Frocedura FAKT izracuna faktorielo celega števila N, ki je ; edini parameter. Kličemo jo kot funkcijo z enim argumentom. »ENTRY O FAKT tiko TSTL. P4lAF) ENEG 10$ Vstopna točka. Testiramo vrednost N. Če je N različno od O računad dalje: MOVL. skl, RO če de nič pa vrni v RO KET vrednost 1. 104: FUSHL. O4AF) Zapisi N na sklad in sa zmanjščad za ena. Zapiši na sklad naslov argumenta No — 1, Kekurzivne kliči sebe. Fomnoži z N faktorielo števila N — 1. Konča z vrednostdjo NI v registru KO. HEC. (SP) FUSHL. SE CALL.S bl, FAKT MULI.E C4(AP),RO RET bu a A, LA, A A ZA, € S, O, A, O TE A EVI V zaornJem primeru smo zapisali: podatek na sklad, da smo ' lahko prenesli njegov naslov v proceduro. Tega podatka nismo vzeli s sklada, vendar po povratku iz procedure tesa podatka ne bo na skladu» ker ukaz RET briše s sklada 'call frame" in vse; kar de bilo zapisano kasneje. Tudi argumente, ki smo jih prenesli v proceduro na skladu (z ukazom ČALJ.SI, ukaz RET ob vrnitvi iz procedure briše s sklada. 5.4 NORUTINE Zanimiv primer uporabe pravih podvrosramav so korutine. V višjem prosramskem Jeziku Jih ne moremo uporabljati; kepo v korutinah prenašamo kontrolo z ukazom USE in posebnim načinom naslavljanda, Korutina de podprasram; ki se izvaja po delih vzporedno z nekim drugim prosramom, Izmenično se prenaša kontrola iz enega podorosarama v drugega in nazaj, Frimer korutine je podprogram, s katerim spravimo vsebino nekaj registrov na sklad na začetku bpodorosrama dn dih na koncu vrnemo. Frednost takšne korutine de, da na začetku podprosrama povemo: o V katerih registrih nočemo pokvariti vrednosti in nam ni treba paziti: ? Korutina, ki shrani vrednosti določenih registrov na sklad in v — BE —