ホームサポートFAQ(よくあるご質問)

FAQ(よくあるご質問)

管理No. [FAQ-00007]
倍長演算がわかりません。

形名: すべて



 
指定応用命令(21種類)には、2バイト以上(バイト命令)、 4バイト以上(ワード命令)、8バイト以上(ダブルワード命令)のデータ演算を可能とする機能を倍長演算機能といいます。

【解説】

(1) 倍長演算対象命令
倍長演算対象の応用命令は以下の通りです。
・F-10、F- 10w、F-10d−−−レジスタ間の加算
・Fc10、Fc10w、Fc10d−−−レジスタとBCD定数の加算
・F-11、F- 11w、F-11d−−−レジスタ間の減算
・Fc11、 Fc11w、Fc11d−−−レジスタとBCD定数の減算
・F-12、F- 12w、F-12d−−−レジスタ間の比較
・Fc12、Fc12w、Fc12d−−−レジスタと8進数の比較
・Fx12、Fx12w、Fx12d−−−レジスタと16進数の比較


(2) 倍長演算時のプログラム  
倍長演算は、下の桁の演算より発生した桁上げ、桁下げ信号を、次の桁の演算に自動的に反映させる機能です。倍長演算時のプログラムは、以下のように演算実行条件に続けて、下の桁からプログラムを作成します。

例1)

 
【参考】 次のようにプログラムすると倍長演算にはなりません。(同じ回路にある必要があります。)


例2)3バイト以上の倍長演算も同様にして可能です。



(3) 倍長演算時の内部処理
1. 演算実行条件の以後、最初にプログラムしている倍長演算対象命令(21種類)は、それ以前のフラグ状態を含めずに演算します。
F-10、F-10w、F-10d、Fc10、 Fc10w、Fc10d・・・直前のキャリーフラグの状態を加算。
F-11、F-11w、F-11d、Fc11、 Fc11w、Fc11d・・・直前のキャリーフラグの状態を減算。
F-12、F-12w、F-12d、Fc12、 Fc12w、Fc12d、Fx12、Fx12w、Fx12d・・・直前のキャリーフラグの状態を減算。

2. 共通の演算実行条件で、次に倍長演算対象命令のいずれかの命令があると、下記のように演算します。
1. 直前のキャリーフラグの状態を含めて演算を実行します。
2. ゼロフラグは「直前のゼロフラグの状態」と「該当命令の演算によるゼロフラグの状態」をANDし、両方が1のときにセットされます。


(4) 倍長演算に関する注意
1. 倍長演算対応命令(21種類)は、共通の演算条件でプロゴラムすると、異種命令間でもフラグを含んだ命令を行います。

2. 倍長演算対応命令の間に、フラグに影響を与えない命令があっても、倍長演算として実行します。

3. 倍長演算対象命令の間に、フラグに影響を与える命令があると、その命令によるフラグを含んだ演算を行います。

4. F-10(w、d)、Fc10(w、d)、F-11(w、d)、Fc11(w、d)で、BCDコード以外を使用するとエラーフラグがONし、それ以後の倍長演算は実行しません。

【関連事項】

なし

ホームサポートFAQ(よくあるご質問)
前のページに戻るページ先頭へ戻る