... | @@ -218,7 +218,7 @@ rs1番のレジスタとrs2番のレジスタの値を読み出し、その商 |
... | @@ -218,7 +218,7 @@ rs1番のレジスタとrs2番のレジスタの値を読み出し、その商 |
|
### REM, REMU
|
|
### REM, REMU
|
|
rs1番のレジスタとrs2番のレジスタの値を読み出し、その剰余をrd番のレジスタに書き込みます。
|
|
rs1番のレジスタとrs2番のレジスタの値を読み出し、その剰余をrd番のレジスタに書き込みます。
|
|
|
|
|
|
`REM`命令の場合は`rs1`と`rs2`は符号付き整数であると解釈して計算します。結果は符号付き整数として求めます。`REMU`命令の場合は`rs1`と`rs2`は符号なし整数であると解釈して計算します。結果は符号なし整数として求めます。ただし、`REM`の場合、求めるべき商は、数学的な剰余ではなく、符号が被除数と同じ剰余です(`rs1`と`rs2`の絶対値をとってから剰余を計算した後、`rs1`と同じ符号にすればよいです)。
|
|
`REM`命令の場合は`rs1`と`rs2`は符号付き整数であると解釈して計算します。結果は符号付き整数として求めます。`REMU`命令の場合は`rs1`と`rs2`は符号なし整数であると解釈して計算します。結果は符号なし整数として求めます。ただし、`REM`の場合、求めるべき商は、数学的な剰余ではなく、符号が被除数と同じ剰余です(`rs1`と`rs2`の絶対値をとってから剰余を計算した後、`rs1`と同じ符号にすればよいです)。別の言い方をすると、`rs1 == rs2 * div(rs1,rs2) + rem(rs1,rs2)`が成立するように剰余を求めます。
|
|
|
|
|
|
剰余演算の結果が定義されていない場合の挙動は以下の通りです。
|
|
剰余演算の結果が定義されていない場合の挙動は以下の通りです。
|
|
|
|
|
... | | ... | |