例:
9.4 FAL 算術演算
9.4.1 上限および下限
数学的に処理されるデータの限界は、そのデータが格納されているファイル のタイプによって異なります。以下の点に注意してください。
• 浮動小数点以外のすべてのデータは、符号付きの整数です。
• 負の値は、2の補数として格納されている。
• 浮動小数点数は、IEEE単精度浮動小数点のサブセットとして表現され る。
プロセッサは、演算結果が格納されている宛先ワードの上限または下限のい ずれかを超えたことを検出すると、エラーを知らせます。プロセッサのス テータスファイル(S:0/1)にオーバーフロービットがセットされます。命令 は、さらにそのコントロールワードのステータスバイトにエラービットを セットします。
演算子 意味 演算子 意味
+ 加算 | 除算
– 減算 – 符号変換
* 乗算 0 クリア
ファイルタイプ ワードに格納される範囲 ビット –32,768~+32,767 (整数)
整数 –32,768~+32,767
タイマ 0~+32,767
カウンタ –32,768~+32,767
コントロール 0~+32,767
浮動小数点 ±1.1754944e–38~±3.4028237e+38
ファイル命令(FAL, FSC, COP, FLL) 9-7
加算例:
ラングがTrue (1)にセットされると、プロセッサは、1スキャン当たり10ワードの数値モードで、ファイル#N11:0の100個の値をファイル#N12:0の 対応する値に追加します。演算は10スキャン単位で実行され、命令は結果 をファイル#N13:0に格納しながら、式に指定された値を順に追加していき ます。
(EN) (DN) FAL
FILE ARITH/LOGICAL
Control R6:0
Length 100
Position 0
Mode 10
Destination #N13:0 Expression
#N11:0 + #N12:0
(ER)
オペランド 説明
Control (R6:0) どの制御構造が演算を制御するか。
Length (100) 100エレメントを転送する。
Position (0) ソースアドレスの先頭から開始する。
Mode (10) 1スキャン当たり10ワードのデータを処理する。
Destination (#N13:0) データの書込み先 Expression
(#N11:0 + #N12:0) 演算子、プログラム定数、およびソースアドレスを指定可能
ファイル# N11:0 + ファイル# N12:0 = ファイル# N13:0
第1スキャン
第2スキャン 第3スキャン 第4スキャン
第10スキャン
328 150 10 32 0 45 1579
620 800 1243 次の10エレメント 次の10エレメント 次の10エレメント
最後の10エレメント 0 1 2 3 4 5 6 7 8 9
99
10 32 1 147
99 572 300 42 19 1000
0 1 2 3 4 5 6 7 8 9
99
338 182 11 179
99 617 1879
662 819 2243
0 1 2 3 4 5 6 7 8 9
99
減算例:
ラングがTrue (1)にセットされる、プロセッサは、1スキャンで整数ファイ
ルN14の8つのエレメントを、エレメント0から始めて1つずつ読取り、
それぞれのワードからプログラム定数(256)を減算して、その結果を宛先 ファイルN15のエレメント10から書込んでいくという作業を行ないます。
オペランド 説明
Control (R6:1) どの制御構造が演算を制御するか。
Length (8) 8ワードを転送する。
Position (0) ソースアドレスの先頭から開始する。
Mode (ALL) 1プログラムスキャンですべてのデータを処理する。
Destination (#N15:10) データの書込み先 Expression
(#N14:0 – 256) 演算子、プログラム定数、およびソースアドレスを指定可能
1スキャン が必要
ファイル#N14:0 - 256 = ファイル#N15:10 (EN)
(DN) FAL
FILE ARITH/LOGICAL
Control R6:1
Length 8
Position 0
Mode ALL
Destination #N15:10 Expression
#N14:0 - 256
(ER)
0 1 2 3 4 5 6 7 328
150 10 32 0 45 1579
620
10 11 12 13 14 15 16 17 72
-106 -246 -224 -256 -211 1323 364
ファイル命令(FAL, FSC, COP, FLL) 9-9
乗算例:
ラングがTrue (1)にセットされると、プロセッサはインクリメンタルモード
で、ファイル#F8:0にある16の値とファイル#N17:0にある対応する値を掛 け合わせます。False (0)からTrue (1)にセットされるごとに1回の乗算が実 行されます。演算には16回のトランジションが必要であり、その結果は
ファイル#F8:16に格納されます。
(EN) (DN) FAL
FILE ARITH/LOGICAL
Control R6:2
Length 16
Position 0
Mode INC
Destination #F8:16 Expression
#F8:0 * #N17:0
(ER)
オペランド 説明
Control (R6:2) どの制御構造が演算を制御するか。
Length (16) 16ワードを転送する。
Position (0) ソースアドレスの先頭から開始する。
Mode (incremental) インクリメンタルモードで処理する。
Destination (#F8:16) データの書込み先 Expression
(#F8:0 * #N17:0) 演算子、プログラム定数、およびソースアドレスを指定可能
ファイル# F8:0 × ファイル# N17:0 = ファイル#F8:16
第1スキャン 第2スキャン 第3スキャン 第4スキャン
0.01 0.1 1.0 19.0
0 1 2 3 4 5 6 7 8 9
15
314 315 316 317
0 1 2 3 4 5 6 7 8 9
15
3.14 31.5 316 3170
16 17 18 19 20 21 22 23 24 25
31
除算例:
ラングがTrue (1)にセットされると、プロセッサはインクリメンタルモード
で、ファイル#N11:0の16の値をファイル#N12:0の対応する値で割ります。
False (0)からTrue (1)にセットされるごとに、1回の除算が実行されます。
演算には16回のトランジションが必要であり、その結果がファイル#N13:0 に格納されます。
(EN) (DN) FAL
FILE ARITH/LOGICAL
Control R6:2
Length 16
Position 0
Mode INC
Destination #N13:0 Expression
#N11:0 | #N12:0
(ER)
ファイル# N11:0 | ファイル# N12:0 = ファイル# N13:0
第1スキャン 第2スキャン 第3スキャン 第4スキャン
60 175 1128
45
0 1 2 3 4 5 6 7 8 9
15
12 5 8 9
0 1 2 3 4 5 6 7 8 9
15
5 35 141
5
0 1 2 3 4 5 6 7 8 9
15
オペランド 説明
Control (R6:2) どの制御構造が演算を制御するか。
Length (16) 16ワードを転送する。
Position (0) ソースアドレスの先頭から開始する。
Mode (incremental) インクリメンタルモードで処理する。
Destination (#N13:0) データの書込み先 Expression
(#N11:0 | #N12:0) 演算子およびソースアドレスを指定可能
ファイル命令(FAL, FSC, COP, FLL) 9-11
ファイルの開平演算 例:
ラングがTrue (1)にセットされると、命令は式にある値の正の平方根を算出
します。1スキャン当たりのワード処理量は、選択したファイル処理モード によって決まります。それぞれの開平演算の結果は、宛先にある対応するエ レメントに、1回に1エレメントずつ格納されます。
プロセッサは、絶対値の平方根を計算することに注意してください(符号が 負の場合は、プロセッサは符号を無視します)。
最初にラングがTrue (1)にセットされたとき、式に指定されたN22:25の最 初の4つのワードに対する平方根が算出され、宛先N23:4から書込みます。
命令は、演算が完了するまで、1スキャンごとに次の4ワードの平方根が算 出されて、その結果が宛先ファイルに書込まれます。命令を完了するために
は、16スキャン(Length = 64/Mode = 4)が必要です。
(EN) (DN) FAL
FILE ARITH/LOGICAL
Control R6:4
Length 64
Position 0
Mode 4
Destination #N23:4 Expression
SQR #N22:25
(ER)
オペランド 説明
Control (R6:4) どの制御構造が演算を制御するか。
Length (64) 64ワードの開平演算を実行する。
Position (0) ソースアドレスの先頭から開始する。
Mode (4) ラングがTrue (1)にセットされると、4ワードを処理す
る。
Destination (#N23:4) データの書込み先
Expression (SQR #N22:25) 演算子およびソースアドレスを指定可能