« 「天文屋のためのマイコン入門」プログラム解説 | トップページ | 「天文屋のためのマイコン入門」ロータリースイッチの取り付け »

2014年6月11日 (水)

「天文屋のためのマイコン入門」ラベルの使用

今日は、便利なラベルと言われる機能について説明します。

GOTO命令は、次のようにジャンプ先の番地を記述するのが決まりです。

GOTO 5

ただ、直接番地を記述しながらプログラミングするのは煩わしいです。その理由は、

1 どこへジャンプするか番地を数えないと分からない

2 プログラムの上のほうへジャンプ(後方参照という)する場合は、すでに番地が確定しているので良いが、下のほうにジャンプ(前方参照という)する場合は、番地が未確定である。そのため、番地を空欄にするか、仮の番地を記述し、後から修正する(この作業をフィックスアップという) 

3 プログラムが修正された場合、番地が変化するので、再度番地を記述しなおさなければならない。

以上3つは実際にプログラミングして見れば誰でも感じることです。で、この3つの不便をすべて解消してくれるのがラベルの機能です。

●ラベルとは
 
まず、ラベルの名前を決めます。ラベルの名前は英字、数字、下線などからなり、先頭は数字以外です。名前はプログラムする人が自由に決められます。たとえばプログラムの最初のを意味するSTARTと名付けることにします。

そしたら、このラベルを行のはじめ、命令の前に記述します。

START    BSF  3,5

または、途中に改行を入れてもいいです。

START
             BSF  3,5

どちらでもいいです。そうしておいてプログラムをビルドすると、MPLABは、BSF 3,5の命令の番地を計算してSTARTというラベルに割り当ててくれるのです。

たとえば、BSF 3,5という命令が5番地だとすれば、STARTは5番地と同等になります。

したがって、BSF  3,5という命令のところにジャンプしたければ、

GOTO START

と、記述すれば良いです。これがラベルです。簡単に言えば

ラベルとは
 その場所の番地である

このラベルを使用すればジャンプ先がはっきり分かりますし、番地の計算も必要ありません、またプログラムが変更されても、その都度MALABが再計算しますので、プログラマが考える必要はありません。

それでは、前回出したプログラムをラベルを使って書き直してみます。

1406111

どうですか、分かりやすくなったと思います。

|

« 「天文屋のためのマイコン入門」プログラム解説 | トップページ | 「天文屋のためのマイコン入門」ロータリースイッチの取り付け »

コメント

コメントを書く



(ウェブ上には掲載しません)




« 「天文屋のためのマイコン入門」プログラム解説 | トップページ | 「天文屋のためのマイコン入門」ロータリースイッチの取り付け »