第二部 トロン仕様チップ命令詳細第四章 算術演算命令
DIV
算術演算 <<L1R>>、<<L1>>、<<L2>>

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

DIV src, dest

【機能】

Divide
除算

【オプション】

なし

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

【解説】

 destsrcで除算し、商をdestに入れます。
 演算は符号付きで行われます。
 この命令では、結果のサイズが被除数のサイズと同じになります。
 商はゼロ方向に丸められ、剰余の符号は被除数と同じになります。

例 : 

	

10/3 →   商 = 3、 剰余 = 1
(−10)/3 商 = (−3)、 剰余 = (−1)
0/(−3) 商 = (−3)、  剰余 = 1
 src = 0のときには、ゼロ除算トラップ (ZDT)が発生します。このときには、V_flagがセットされますが、destの値は変化しません。 ゼロ除算以外で、オーバフローは最小負数(MSBが1で他のビットがすべて0)を−1で除算するときにのみ発生します。


例 :
 src = H'ffff = (−1)、dest = H'8000 = (−32768)でDIV.Hを実行すると、次の結果になります。

	


【フラグ変化】



(1) (2)、(3)以外の除算
(2) 最小負数を−1で除算
(3) ゼロ除算

【発生EIT】

RIE  src [Gen/r], dest [Gen/m]のアドレッシングモード違反
RIE sx = 11, sy = 11
ZDT src = 0
 

【使用例】



 汎用レジスタR3の値(H'd4)を汎用レジスタR12(H'05)の値で除算します。商(H'f8)をR3に格納します。