大人の科学マガジン 4bitマイコン付買った の続き
裏の命令表見ながら1秒ごとに7Seg LEDで1->2->3...とカウントするプログラムを作ってみました
|
Adr |
命令 |
コード |
コメント |
| 0 |
8 1 |
TIA 1 |
Aレジスタに1を入れる |
| 2 |
1 |
AO |
Aレジスタの内容をLEDへ出力 |
| 3 |
3 |
CY |
AレジスタとYレジスタを入れ替え |
| 4 |
8 A |
TIA 10 |
Aレジスタに10を入れる |
| 6 |
EC |
CAL TIMR |
Aレジスタにで指定した時間ウェイト(0.1×10=1秒) |
| 8 |
3 |
CY |
AレジスタとYレジスタを入れ替え |
| 9 |
9 1 |
AIA 1 |
Aレジスタの内容を+1(インクリメント) |
| B |
3 |
CY |
AレジスタとYレジスタを入れ替え |
| C |
3 |
CY |
AレジスタとYレジスタを入れ替え |
| D |
F 02 |
JUMP 02 |
2番地へ戻る |
B,C番地でAとYのスワップを2度行っているのはAレジスタの値を保持しつつ実行フラグを立てるためです。
JUMP命令は実行フラグが立っていないと分岐できないためこのようなことをしました。
もっといいやり方があるんでしょうが命令表見ながらパコパコ打っただけなんで^^;
アセンブラというか機械語の教材として結構いいんじゃないかな?と思いました。