第二部 トロン仕様チップ命令詳細第十八章 10進演算強化命令
DCADJ
10進演算強化命令 <<L2>>

【ニモニックとオペランド】

DCADJ src, dest

【機能】

Decimal calculation adjust
10進補正

【オプション】

なし

【命令フォーマットと表記法】

【解説】

 DCADJ命令はsrcを符号付きパック形式10進数とみなして補数を取ります。
 この命令は"0"からsrcの符号付き10進減算を行って、その結果をdestと置き換えます。
 上位の桁へのボローが発生する場合には、X_flagをセットします。
 結果の符号は、srcの符号が正(a, c, e, f)の場合には負(d)、srcの符号が負(b, d)の場合には正(c)に正規化します。
 srcのサイズがdestのサイズよりも小さい場合には、srcのサイズで補数演算した結果の値destの下位桁に格納し、destの上位桁には"0"が詰められます。他方、srcのサイズがdestのサイズよりも大きい場合には、srcのサイズで補数演算を行います。上位桁(destに入らない桁)はカットされます。この場合、カットされる値を検査して、srcの補数がdestのサイズ内で表現できない場合にはオーバフローを示すためにV_flagをセットします。

【フラグ変化】

【発生EIT】

RIE  src [Gen/ru], dest [Gen/wu]のアドレッシングモード違反
RIE  sx = 11, sy = 11
DDT srcの数字がH'0〜H'9以外の桁を含む
DDT srcの符号がH'a〜H'f以外

【使用例】



 汎用レジスタR3で指定されたロケーションの内容(32ビット長)を"0"から符号付き10進減算します。結果はR6で指定されたロケーションに32ビット長で格納されます。