教科書のList5-10のプログラムを例にして、数値データを文字データに変換する方法を説
明する。
教科書の例のプログラムは、メモリーに格納されている整数データを文字に変換して表示
するものである。表示の約束は、以下の通りである。
- ラベルAに入っている数値(最大5桁)を文字列に変換して、OUT命令で表示す
る。
- 表示には6桁(カラム)用意して、第1桁は符号で負の場合のみ表示する。2〜6桁は
絶対値を表す。ただし、上位の桁が0の場合、スペースを入れる。
ラベルAの数値が最大5桁なのは、それを符号付き整数として取り扱うからである。
その場合、1ワードで表現できるのは、-32768〜32767の範囲である。これが5桁で、符号
を合わせると表示に6桁必要になる。実際には図のように、6カラムで負号のみ左端に表示
し、数値は右詰で表示する。
図 2:
教科書のList5-10の数値を文字に変換
|
|
プログラムの作成方法と動作について、教科書に沿って説明する。
表 2:
メインルーチンの汎用レジスターとメモリの内容
| GR0 |
処理すべき数値(処理する毎に桁が減少) |
| GR1 |
カウンター(処理する桁を示す) |
| GR2 |
除数 |
| GR3 |
その桁の値(整数) |
| C4 |
わり算が必要な桁数 |
| BUFF |
文字を格納するメモリーの先頭アドレス |
| MOJI |
#0030。これを整数に足せば、その文字コードになる。 |
| WORK |
以前の桁のフラグ(0:全てゼロ それ以外:ゼロ以外が現れた) |
| WORK+1〜4 |
桁 |
表:
サブルーチンDIVの汎用レジスターとメモリの内容。このサブルーチン
では
商
余り
を計
算している。
| レジスター |
実行前 |
実行後 |
| GR0 |
被除数 |
余り |
| GR2 |
除数 |
除数(変化無し) |
| GR3 |
不定 |
商 |
図 3:
教科書のList5-10のプログラムとフローチャート
|
|
ホームページ:
Yamamoto's laboratory著者:
山本昌志
Yamamoto Masashi
平成17年1月29日