; Pseudofunktionen a:302, b:303 und Ergebnis in 1337 ; Bei Funktionsaufruf: ; Adresse von der gesprungen wird: x00 ; Rückgabewert: x01 ; Paramter: x02ff. JMP 51 ; bei Programmstart zur Hauptfunktion springen ;div-Funktion a div b (Paramter: a:102,b:103) LDA #0 STA 101 LDA 102 SBA 103 STA 102 LDA 101 ADD #1 STA 101 LDA 102 JIP 10 LDA 101 SBA #1 STA 101 LDA 100 JMP ; (zum Wert von 100) ;mod-Funktion a mod b (Parameter: a:202;b:203) ;Funktionsaufruf von div LDA 32 STA 100 ; Rücksprungadresse merken LDA 202 STA 102 ; Paramter a übergeben LDA 203 STA 103 ; Paramter b übergeben JMP 8 ; Sprung zu div LDA 101 ; Ergebnis von a div b STA 204 ; Sicherheitshalber abspeichern ; b x (a div b); a div b = 204 LDA 203 ; fester Wert von b STA 205 ; variabler Wert von b LDA 205 ADD 203 STA 205 LDA 204 SBA #1 STA 204 SBA #1 JIP 37 LDA 202 SBA 205 ; a - (a div b) STA 201 JMP 200 ; Fkt zuende Springe zum Wert von 200 ; Hauptfunktion ggT von (a = 302 und b = 303) r = 304 ; repeat r:= a mod b; a:=b; b:=r; until r=0; result:=a; LDA 302 STA 202 ; a an mod übergeben LDA 303 STA 203 ; b an mod übergeben LDA #57 ; Rücksprungadresse STA 200 LDA 201 ; Ergebnis von a mod b STA 304 ; in r speichern LDA 303 STA 302 ; a:=b LDA 304 STA 303 ; b:=r JIP 51 ; until r=0 bzw if r>0 LDA 302 STA 1337