この実装例ではエディターモードと実行モードがあります。これら2つのモードを切り替えてプログラミングとデバッグを行います。
電源投入時はエディターモードになります(図1)。
8×8のLEDドットマトリクスの画面右上の角にあるLEDが点滅しています。図1では点灯している瞬間が写っていますが、実際には点滅しています。これはカーソルの役目を果します。
エディターモードで上下左右キーとAボタンBボタンを用いて8×8のLEDドットマトリクス画面にプログラミングしていきます。
imaoPadのLEDドットマトリクスの左側にある上下左右キーを操作してカーソルを移動します。そして、LEDドットマトリクスの右側にある2つのボタンの内右側のAボタンを押すとその場所のLEDをセットします。また同左側のBボタンを押すとその場所のLEDがリセットされます。
図2はプログラミングの様子を示しています。
図2のLEDドットマトリクスがところどころ点灯していますがその意味を読み解いていきましょう。
これはドットマトリクスを見る上でのお約束なのですが、ドットマトリクスの左側が下位ビット、右側が上位ビットになります。すなわち、ドットマトリクスの一番右上のLEDは最下位ビットを示し、左側に行くほど上位ビットとなって一番左上のLEDが命令セット長である8ビットの中の最上位ビットとなります。
そしてドットマトリクスの上下の軸はアドレスを示しています。一番上の行が2進法で0000番地、一番下の行は2進法で0111番地となります。
表3は図2で示したビット列の元になるプログラムです。
adr | binary | instruction |
---|---|---|
0000 | 01100_110 | inc r6 |
0001 | 1001_0000 | jmp 0 |
表3 図2で示したビット列の元になるプログラム |
表3の一番右側の列を見てください。最初に「inc r6」とあり、その次に「jmp 0」があります。この場合、最初にレジスタR6をインクリメント(1を加算)します。この命令はアドレス0000番地に書きこまれています。次のjmp 0は、0000番地に実行を移すというものです。すなわちこのプログラムコードを実行するとR6のインクリメントを繰り返すのです。
そしてinc r6をバイナリコードに直すと「01100_110」となります。アンダーバー(_)はコードが見やすくなるようにオペレーターのコードとオペランドのコードの間に挿入しています。上位5ビットが「inc」のオペレーターである「01100」を示しています。下位3ビットは「r6」を示しています。
次のjmp 0ですが上位4ビットが「jmp」を示し下位4ビットは実行を移行するアドレスを示しています。これらをimaoPadのLEDドットマトリクス上に表現すると図2のようになるというわけです。
今回はimaoPadの操作モードのうちエディターモードを紹介しました。次回以降他の操作モードやさまざまな使い方を紹介します。お楽しみに。
Copyright © ITmedia, Inc. All Rights Reserved.