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

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

REM src, dest

【機能】

Get remainder
剰余

【オプション】

なし

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

【解説】

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


10/3 商 = 3、 剰余 = 1
(−10)/3 商 = (−3)、 剰余 = (−1)
10/(−3) 商 = (−3)、 剰余 = 1


 src = 0のときには、ゼロ除算トラップ (ZDT)が発生します。このときV_flagがクリアされますが、destの値は変化しません。

【フラグ変化】

【発生EIT】

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

【使用例】



 汎用レジスタR13の値を16ビット長の数値D'8に加算し、結果を2バイトのメモリ参照のアドレスとして使用します。メモリ参照で得られた16ビットの値を32ビットに符号拡張し、汎用レジスタR4の内容を除算します。剰余をR4に格納します。