| REM 算術演算命令 <<L1R>>,<<L1>>,<<L2>> |
【ニモニックとオペランド】
【機能】
Get remainder
剰余
【オプション】
なし
【命令フォーマットと表記法】
【解説】
destをsrcで除算し、剰余を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に格納します。