2 [例題9]ラベルを2重につける方法

教科書のList5-9のプログラムを例にして、ラベルを2重につける方法について説明する。

2.1 教科書の例

教科書の例題6(p.97)〜8(p.101)は、いずれも与えられたデータの最大値を求めるプログ ラムであった。これらの場合、最大値を求めたいデータの数列とその数が与えられていた。 データ数を元に、数列を読みしと比較を繰り返すことにより最大値を探索した。ここでは、 データ数が与えられていない場合のテクニックを学習する。

教科書のプログラムの内容は、

である。このプログラム例で学習することは、最終データがあるアドレスにラベル名をつ けることである。それは、プログラム中で示しているように
	DATA  DC   1,5,6,8,9    
	LAST  DS   0      ;数列の最終アドレス+1
とするのである。こうすると数列の先頭のアドレスはDATAで、最終アドレスは LAST-1で示すことができる。

2.2 プログラムの構造とフローチャート

このプログラムのフローチャートを図1に示す。このプログ ラムを理解するために、ここで使われているレジスターやラベルの内容を表 3に示しておく。プログラムの内容を理解するときには、変数が 示す内容を考えるのが第一歩である。諸君も、プログラムの内容を調べるときには、変数 の意味を調べることから始めよ。全て分からなくても良い。分かるものから、その意味を プログラム中に書け。

このプログラムは、そんなに難しくなく、最終アドレス間で次々に加算しているのが理解 できるであろう。

表 1: 汎用レジスターとメモリの内容
GR0 加算途中および結果の合計値
GR1 データの最終アドレス+1(LAST)
GR2 読み込むデータのアドレス(LASTLAST-1)
DATA 加算する数列の先頭アドレス
LAST 加算する数列の最終アドレス
SUM 数列を加算した結果を格納するメモリーのアドレス

図 1: 教科書のList5-9のプログラムの構造とフローチャート
\includegraphics[keepaspectratio, scale=0.8]{flow_chart/REI5-9.eps}



ホームページ: Yamamoto's laboratory
著者: 山本昌志
Yamamoto Masashi
平成17年1月29日


no counter