インテルのみ表示可能 — GUID: iga1409765310268
Ixiasoft
インテルのみ表示可能 — GUID: iga1409765310268
Ixiasoft
8.5.64. mul
命令 | 乗算 |
演算 | rC ← (rA x rB) 31..0 |
アセンブラー構文 | mul rC, rA, rB |
例 | mul r6, r7, r8 |
説明 | rA に rB を乗算し、生成される下位 32 ビットを rC に格納する。結果は、オペランドが符号付きまたは符号なし整数として扱われるかどうかと同じである。 mul命令が未実装の Nios II プロセッサーは未実装命令例外を発生する。 |
使用法 | キャリー検出 ( 符号なしオペランド ) : 乗算演算の前または後に、rC の MSB のキャリーアウトは次の命令シーケンスを使用して検出が可能。 mul rC, rA, rB mulxuu rD, rA, rB cmpne rD, rD, r0 # The mul operation (optional) # rD is nonzero if carry occurred # rD is 1 if carry occurred, 0 if not mulxuu命令は符号なし数値の乗算がキャリー ( 符号なしオーバーフロー ) を生成する場合、rD に非ゼロ値を書き込む。0/1 の結果が必要な場合はcmpne命令のmulxuuに従います。 オーバーフロー検出 ( 符号付きオペランド ): 乗算演算後、次の命令シーケンスを使用してオーバーフローの検出が可能。 mul rC, rA, rB cmplt rD, rC, r0 mulxss rE, rA, rB add rD, rD, rE cmpne rD, rD, r0 # The original mul operation # rD is nonzero if overflow # rD is 1 if overflow, 0 if not cmplt–mulxss–add命令シーケンスは、rC の積が 32 ビット ( 符号付きオーバーフロー ) で表現できない場合、rD に非ゼロ値を書き込む。0/1 の結果が必要な場合は、cmpne命令で命令シーケンスに従う。 |
例外 | 未実装命令 |
命令型 | R |
命令フィールド | A = オペランド rA のレジスター・インデックス B = オペランド rB のレジスター・インデックス C = オぺランド rC のレジスター・インデックス |
ビットフィールド | |||||||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
31 | 30 | 29 | 28 | 27 | 26 | 25 | 24 | 23 | 22 | 21 | 20 | 19 | 18 | 17 | 16 |
A | B | C | 0x27 | ||||||||||||
15 | 14 | 13 | 12 | 11 | 10 | 9 | 8 | 7 | 6 | 5 | 4 | 3 | 2 | 1 | 0 |
0x27 | 0 | 0x3a |