3 [例題10]数値データを文字データに変換

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

3.1 教科書の例

教科書の例のプログラムは、メモリーに格納されている整数データを文字に変換して表示 するものである。表示の約束は、以下の通りである。

ラベルAの数値が最大5桁なのは、それを符号付き整数として取り扱うからである。 その場合、1ワードで表現できるのは、-32768〜32767の範囲である。これが5桁で、符号 を合わせると表示に6桁必要になる。実際には図のように、6カラムで負号のみ左端に表示 し、数値は右詰で表示する。

図 2: 教科書のList5-10の数値を文字に変換
\includegraphics[keepaspectratio, scale=1.0]{figure/print.eps}

プログラムの作成方法と動作について、教科書に沿って説明する。

表 2: メインルーチンの汎用レジスターとメモリの内容
GR0 処理すべき数値(処理する毎に桁が減少)
GR1 カウンター(処理する桁を示す)
GR2 除数
GR3 その桁の値(整数)
C4 わり算が必要な桁数
BUFF 文字を格納するメモリーの先頭アドレス
MOJI #0030。これを整数に足せば、その文字コードになる。
WORK 以前の桁のフラグ(0:全てゼロ それ以外:ゼロ以外が現れた)
WORK+14


表: サブルーチンDIVの汎用レジスターとメモリの内容。このサブルーチン では $ \texttt {GR0}\div \texttt {GR2}\rightarrow$$ \texttt{GR3}$余り$ \texttt{GR0}$を計 算している。
レジスター 実行前 実行後
GR0 被除数 余り
GR2 除数 除数(変化無し)
GR3 不定

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



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


no counter