23 lines
410 B
Plaintext
23 lines
410 B
Plaintext
// Quellkode: ggt(a,b) { if (b==0) then a else ggt(b, a mod b) }
|
|
// Annahmen: Die Argumente a und b werden durch Kellerzellen 0 und 1 repräsentiert,
|
|
// sowie PP=0, FP=0 und TOP=-1
|
|
INVOKE 2 LGGT 0
|
|
POP
|
|
HALT
|
|
|
|
LGGT:
|
|
// b
|
|
LOAD 1 0
|
|
// if b != 0 -> 1
|
|
IFZERO 1
|
|
// return a
|
|
LOAD 0 0
|
|
RETURN
|
|
L1:
|
|
LOAD 1 0 // b
|
|
LOAD 0 0
|
|
LOAD 1 0
|
|
MOD // a mod b
|
|
INVOKE 2 LGGT 0 // ggt(b, a mod b)
|
|
RETURN
|