All pastes #486163 Raw Edit

Something

public text v1 · immutable
·published 2007-05-13 19:50 UTC
rendered paste body
; 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