3 LD GR1,MIN ; GR1:カウンター。初期値はMIN
4 LD GR2,MIN ; GR2:Fizzカウンター。初期値はMIN
5 LD GR3,MIN ; GR3:Buzzカウンター。初期値はMIN
6 XOR GR4,GR4 ; GR4:FizzBuzzフラグ。初期値は0
7 SETFIZ CPL GR2,FIZNUM ; GR2 = 3ではない場合、SETBUZへジャンプ
10 SETBUZ CPL GR3,BUZNUM ; GR3 = 5ではない場合、PUTFBへジャンプ
13 PUTFB LD GR4,GR2 ; GR4 <- GR2 or GR3
15 JNZ PUTFIZ ; GR4が0ではない場合、GR2とGR4のどちらかが0ではないので、PUTFIZへジャンプ
16 OUT FIZZ,FBLEN ; 「FizzBuzz」を出力
17 JUMP LOPEND ; LOPENDへジャンプ
18 PUTFIZ LD GR2,GR2 ; GR2が0ではない場合、PUTBUZへジャンプ
20 OUT FIZZ,FIZLEN ; 「Fizz」を出力
21 JUMP LOPEND ; LOPENDへジャンプ
22 PUTBUZ LD GR3,GR3 ; GR3が0ではない場合、PUTNUMへジャンプ
24 OUT BUZZ,BUZLEN ; 「Buzz」を出力
25 JUMP LOPEND ; LOPENDへジャンプ
26 PUTNUM CALL OUTL ; GR1の数値を表示
27 LOPEND CPL GR1,MAX ; GR1とMAXを比較
28 JZE FIN ; GR1 = MAX の場合、FINへジャンプ
29 LAD GR1,1,GR1 ; GR1 <- GR1 + 1
30 LAD GR2,1,GR2 ; GR2 <- GR2 + 1
31 LAD GR3,1,GR3 ; GR3 <- GR3 + 1
32 JUMP SETFIZ ; SETFIZへジャンプ
35 MIN DC 1 ; FIZZNUMとBUZNUMより小さい数値でなければならない