以前述べたように,プログラムは命令とデータから構成される.高級言語の場合,プログ
ラムの大部分は命令である.データは外部のファイルから呼び出すことが多いので,ソー
スプログラムには書かれないことが多い.というか,あちこちに書いて,どうなっている
のか分からないことも多い.それに対して,機械語やアセンブラのソースプログラムでは,
命令部とデータ部を明確にするのが良い.
アセンブラのプログラムを見る場合,まず最初に,どの部分が命令で,どの部分がデータ
かを見分けなくてはならない.また,命令部はメインルーチンとサブルーチンをも見分け
なくてはならない.これらを,見分けるのは簡単である.慣れればすぐにわかるが,大体
の目安は,以下のとおりである.
- メインルーチンは,START命令で指定されたアドレスからRET命令までである.
- サブルーチンは,メインルーチン同様RET命令で終わっている.始まりは
START命令が有ったり無かったりであるが,必ずラベルはある.メインルーチ
ンと異なるのは,それがメインルーチンあるいは他のサブルーチンからCALL命令
で呼び出されていることである.実際のところ,メインルーチンもOSから
CALL命令で呼び出されているため,諸君が書くプログラムには無いのである.
ハードウェアーにとっては,メインルーチンもサブルーチンも区別していないので
ある.
- データ部は,DCあるいはDS命令が書かれている行である.
プログラムを構成するこれらの3つの要素は,それぞれ一塊にかかれるのが普通である.
一塊に書かないようにもできるが,それは非常にわかりにくいプログラムとなり,絶対に
避けるべきである.少しでも経験のあるプログラマーならば,これらの要素は区別して分
かりやすく書いている.センスのない人ほど,複雑でわかりにくいプログラムを書く.
ソースプログラムを見たり書いたりする場合,メインルーチンとサブルーチン,データ部
に分ることから始めよ.
ホームページ:
Yamamoto's laboratory著者:
山本昌志
Yamamoto Masashi
2006-02-08