3 LD GR1,MIN ; GR1にMINを代入
4 LOOP CALL FIZBUZ ; FIZBUZを呼び出す
5 CPL GR1,MAX ; GR1とMAXを比較
6 JZE FIN ; GR1 = MAX の場合、FINへジャンプ
7 LAD GR1,1,GR1 ; GR1 <- GR1 + 1
17 ;; 3の倍数かつ5の倍数: FizzBuzz
21 XOR GR4,GR4 ; GR4: 文字列「Fizz」の長さおよびフラグ
22 XOR GR5,GR5 ; GR5: 文字列「Buzz」の長さおよびフラグ
23 XOR GR6,GR6 ; GR6: 文字列「FizzBuzz」のフラグ
24 LD GR2,FIZNUM ; GR2にFIZNUM=3を代入
25 CALL DIVL ; GR3 <- GR1 % 3(= GR2)
26 LD GR4,GR3 ; GR4 <- GR3
27 LD GR2,BUZNUM ; GR2にBUZNUM=5を代入
28 CALL DIVL ; GR3 <- GR1 % 5(= GR2)
29 LD GR5,GR3 ; GR5 <- GR3
30 LD GR6,GR4 ; GR6 <- GR4 or GR5
32 JNZ PUTFIZ ; GR6が0以外の場合、GR4かGR5のどちらかが0以外なので、PUTFIZへジャンプ
33 OUT FIZZ,FBLEN ; 「FizzBuzz」を出力
34 JUMP FIN ; 「FizzBuzz」を出力するため、PUTFIZへジャンプ
35 PUTFIZ LD GR4,GR4 ; GR4のフラグ値を取得
36 JNZ PUTBUZ ; GR4が0以外の場合、PUTBUZへジャンプ
37 OUT FIZZ,FIZLEN ;「Fizz」を出力
39 PUTBUZ LD GR5,GR5 ; GR5が0以外の場合、PUTNUMへジャンプ
41 OUT BUZZ,BUZLEN ;「Buzz」を出力
43 PUTNUM CALL OUTL ; GR1の数値を表示