「天文屋のためのマイコン入門」ラベルの使用
今日は、便利なラベルと言われる機能について説明します。
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が再計算しますので、プログラマが考える必要はありません。
それでは、前回出したプログラムをラベルを使って書き直してみます。
どうですか、分かりやすくなったと思います。
| 固定リンク
コメント