- LD GR3,GR3 ; GR3のフラグ値を取得
- JNZ PUTS ; GR3が0でない場合、BIZNUMの倍数ではないので、PUTSへジャンプ
- LD GR5,BUZLEN ; GR4のフラグ値を取得
-PUTS LD GR6,GR4 ; GR6 <- GR4
- AND GR6,GR5 ; GR6 <- GR6 and GR4
- JZE CHKFIZ ; GR6が0の場合、GR4かGR5のどちらかが0なので、CHKFIZへジャンプ
- ADDL GR4,GR5 ; GR4 <- GR4 + GR5
- JUMP PUTFIZ ; 「FizzBuzz」を出力するため、PUTFIZへジャンプ
-CHKFIZ LD GR4,GR4 ; GR4のフラグ値を取得
- JZE CHKBUZ ; GR4が0の場合、CHKBUZへジャンプ
-PUTFIZ ST GR4,LEN ; LEN <- GR4
- OUT FIZZ,LEN ;「Fizz」または「FizzBuzz」を出力
+ LD GR5,GR3 ; GR5 <- GR3
+ LD GR6,GR4 ; GR6 <- GR4 or GR5
+ OR GR6,GR5 ; ↓
+ JNZ PUTFIZ ; GR6が0以外の場合、GR4かGR5のどちらかが0以外なので、PUTFIZへジャンプ
+ OUT FIZZ,FBLEN ; 「FizzBuzz」を出力
+ JUMP FIN ; 「FizzBuzz」を出力するため、PUTFIZへジャンプ
+PUTFIZ LD GR4,GR4 ; GR4のフラグ値を取得
+ JNZ PUTBUZ ; GR4が0以外の場合、PUTBUZへジャンプ
+ OUT FIZZ,FIZLEN ;「Fizz」を出力