Files
Construction-of-Compilers/Project-01/uap25-pro01-tram/tramcode/ggt.tram
2025-10-26 00:55:37 +02:00

26 lines
383 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 GGT 0
HALT
GGT: LOAD 1 0
IFZERO RET
LOAD 1 0
LOAD 0 0
LOAD 1 0
INVOKE 2 MOD 1
INVOKE 2 GGT 0
RETURN
RET: LOAD 0 0
RETURN
MOD: LOAD 0 0
LOAD 1 0
LOAD 0 0
LOAD 1 0
DIV
MUL
SUB
RETURN