2 [例題11]文字データを数値データに変換

教科書のList5-11のプログラムを例にして、文字データを数値データに変換する方法を学 習する。

2.1 教科書の例

教科書のプログラムは、 という問題を解く、プログラムである。このプログラムは、教科書のp.118-119のList5-11に示 されている。

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

このプログラムのフローチャートを図1に示す。このプログ ラムの内容については、教科書に沿って説明する。

まずは、教科書p.115の文字を格納するメモリー領域を

	BUF   DS   256
が気になるところである。この256とはいったい何かである。256=$ 2^8$である。これはコ ンピューターでよく使われる整数で、多分この場合は1レコードの値と思われる。1回に読 み込まれる最大文字数のつもりであろう(推測)。通常、このようにするとデータ転送の効 率が良いのである。ただ、COMMET IIにはそんな仕様は無いので気にする必要はない。実 際に使われている機器のアセンブラのプログラムを書く場合は、注意が必要である。

後は教科書に沿って説明する。


表 2: メインルーチンの汎用レジスターとメモリの内容
GR0 最終的に、読み込んだ整数になる
GR1 桁の重みを読み出すときに使うインデックスレジスター
GR2 処理の桁を示し、先頭の桁(符号の時もある)がゼロで、1の位がLEN-1とな る
GR3 処理している桁の整数値
GR4 その桁の値(桁を表す整数$ \times$その桁の重み)
DATA 調べるデータの先頭アドレス。
BUFF 読み込まれた整数を文字コードとして格納している先頭のアドレス。
LEN 読み込んだ文字数。


表 3: サブルーチンMULTIの汎用レジスターの内容。このサブルーチン では $ \texttt {GR4}\times \texttt {GR3}\rightarrow \texttt {GR4}$を計算している。
レジスター 実行前 実行後
GR3 乗算する値(カウンターとして使う) 0
GR4 乗算する値 除算の結果

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



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


no counter