RAM equ 0
EEPROM equ $f800
RESET equ $fffe
org RAM
gcd rmb 1 * int gcd;
tmp rmb 1
org EEPROM
M fcb 38 * #define M 3838
N fcb 12 * #define N 1221
* * void euclid() {
euclid
ldaa M * a = M;
ldab N * b = N;
tloop tstb
beq gotgcd * while (b != 0) {
cba
blt altb * if (a >= b) {
sba * a = a - b;
bra bloop * } else {
altb staa tmp * tmp = a;
tba * a = b;
ldab tmp * b = tmp;
* * }
bloop
bra tloop * }
gotgcd
staa gcd * gcd = b;
endlp bra endlp * }
org RESET
fdb euclid