Subsections

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
2006-02-25


no counter