冗長命令
この命令は冗長F命令です。次の命令に置き換わっています:FP_ASCII_TO_BCD
実行条件 EN がONのとき、s1 で指定されたエリアに格納されているアスキーコードをBCDデータに変換します。s2には、変換バイト数、変換方向を指定します。
入力
アスキーコードを格納している16ビットエリアの先頭アドレス (変換元)
変換するデータのバイト数および変換方向を示すデータ
出力
変換データを格納する16ビットエリアの先頭アドレス (変換結果)
F命令を使用する代わりに、対応するFP7命令を使用することをおすすめします。FP_ASCII_TO_BCD ASCII -> BCD変換
s2_Number(方向および数値)の指定
4文字分を一区切りにして変換します。
演算結果は、dで指定されたエリアに格納されます。アスキーコードは、BCD 1文字を表わすのに 8ビット(1バイト)必要です。変換の結果、データ長はアスキーコードの半分になります。
変換する文字数が奇数の場合は、順方向のとき、変換結果の最終データのビット0~3に"0"が入力され、逆方向のとき、ビット4~7に"0"が入力されます。
アスキーコードとBCDの対応表
BCDデータ |
アスキーコード |
---|---|
0 1 2 3 4 5 6 7 8 9 |
H30 H31 H32 H33 H34 H35 H36 H37 H38 H39 |
アスキーコード中に10進数(0~9)以外の文字があるとき
s2_Numberで指定したバイト数が、s1_Startで指定したエリアを超えるとき
変換結果がd_Startで指定したエリアを超えるとき
s2_Number で指定したデータが"0"のとき
s2_Numberで指定したバイト数が"16#8"を超えるとき
アスキーコード中に10進数(0~9)以外の文字があるとき
s2_Numberで指定したバイト数が、s1_Startで指定したエリアを超えるとき
変換結果がd_Startで指定したエリアを超えるとき
s2_Number で指定したデータが"0"のとき
s2_Numberで指定したバイト数が"16#8"を超えるとき