• 検索結果がありません。

即値の加算 即値の加算 即値の加算 即値の加算

処理 処理 処理

処理: RARA + (0x00.00 : K : IMM5)

アセンブラの構文 アセンブラの構文 アセンブラの構文

アセンブラの構文: ADDI %rA,IMM5 例例

例例: 前に前に前に前に PFX がないがないがないがない: ADDI %L5,6 ; add 6 to %L5 前に前に

前に前に PFX があるがあるがあるがある: PFX %hi(1000)

ADDI %g3,%lo(1000) ; ADD 1000 to %g3 説明説明

説明説明: 前に前に前に前に PFX がないがないがないがない:

レジスタ A に 5 ビットの即値を加算し、結果をレジスタ A に格納します。IMM5 の範囲は [0..31] です。

前に 前に 前に

前に PFX があるがあるがあるがある:

K レジスタ (11 ビット) の内容と IMM5 (5 ビット) が連結することで、即値の オ ペ ラ ン ド は 5 ビ ッ ト か ら 16 ビ ッ ト に 拡 張 さ れ ま す。 16 ビ ッ ト の 即 値 (K : IMM5) は、32 ビットにゼロ拡張され、レジスタ A に加算されます。

条件コード 条件コード 条件コード

条件コード: フラグ:

N: 結果ビット 31

V: 符号付算術オーバフロー

Z: 結果がゼロの場合に設定、それ以外の場合はクリア C: 加算の繰り上げ

命令のフォーマット 命令のフォーマット 命令のフォーマット

命令のフォーマット: Ri5 命令フィールド

命令フィールド 命令フィールド

命令フィールド: A = RA オペランドのレジスタ・インデックス IMM5 = 5 ビットの即値

15 14 13 12 11 10 9 8 7 6 5 4 3 2 1 0

0 0 0 0 0 1 IMM5 A

N V Z C

∆ ∆ ∆ ∆

2

命命命命令 令令令 セセセセッ ッッット トトト

AND

ビットごとの論理演算子 ビットごとの論理演算子 ビットごとの論理演算子 ビットごとの論理演算子 AND

処理 処理 処理

処理: 前に前に前に前に PFX がないがないがないがない: RARA & RB 前に

前に 前に

前に PFX があるがあるがあるがある:

RA

RA & (0x00.00 : K : IMM5) アセンブラの構文

アセンブラの構文 アセンブラの構文

アセンブラの構文: 前に前に前に前に PFX がないがないがないがない: AND %rA,%rB 前に前に

前に前に PFX があるがあるがあるがある: PFX %hi(const) AND %rA,%lo(const) 例例

例例: 前に前に前に前に PFX がないがないがないがない:

AND %g0,%g1 ; %g0 gets %g1 & %g0 前に前に

前に前に PFX があるがあるがあるがある: PFX %hi(16383)

AND %g0,%lo(16383) ; AND %g0 with 16383 説明説明

説明説明: 前に前に前に前に PFX がないがないがないがない:

RA の個々のビットと RB の対応するビットで論理積を行ない、結果を RA に格 納します。

前に 前に 前に

前に PFX があるがあるがあるがある:

プリフィックスがあった場合、K レジスタ (11 ビット) の内容と IMM5 (5 ビッ

) を連結した即値の定数で、RB オペランドが置換されます。 この 16 ビット

の値 (32 ビットにゼロ拡張) は RA でビットごとに論理積が行なわれ、結果が元 の RA に書き込まれます。

条件コード 条件コード 条件コード

条件コード: フラグ:

N: 結果ビット 31

Z: 結果がゼロの場合に設定、それ以外の場合はクリア 命令のフォーマット

命令のフォーマット 命令のフォーマット

命令のフォーマット: RR、Ri5 命令フィールド

命令フィールド 命令フィールド

命令フィールド: A = RA オペランドのレジスタ・インデックス B = RB オペランドのレジスタ・インデックス IMM5 = 5 ビットの即値

前に 前に 前に

前に PFX (RR) がないがないがないがない:

15 14 13 12 11 10 9 8 7 6 5 4 3 2 1 0

0 0 1 1 1 0 B A

前に 前に 前に

前に PFX (Ri5) があるがあるがあるがある:

15 14 13 12 11 10 9 8 7 6 5 4 3 2 1 0

N V Z C

-

-ANDN

ビットごとの論理演算子 ビットごとの論理演算子 ビットごとの論理演算子

ビットごとの論理演算子 AND NOT

処理 処理 処理

処理: 前に前に前に前に PFX がないがないがないがない: RARA & ~RB PFX が先行が先行が先行が先行:

RA

RA & ~(0x00.00 : K : IMM5) アセンブラの構文

アセンブラの構文 アセンブラの構文

アセンブラの構文: 前に前に前に前に PFX がないがないがないがない: ANDN %rA,%rB 前に

前に 前に

前に PFX があるがあるがあるがある: PFX %hi(const) ANDN %rA,%lo(const)

例 例

: 前に前に前に前に PFX がないがないがないがない:

ANDN %g0,%g1 ; %g0 gets %g0 & ~%g1 前に PFX がある:

PFX %hi(16384)

ANDN %g0,%lo(16384) ; clear bit 14 of %g0 説明

説明 説明

説明: 前に前に前に前に PFX がないがないがないがない:

RA の個々のビットと RB の補集合にある対応ビットで論理積を行ない、その結 果を RA に格納します。

前に前に

前に前に PFX があるがあるがあるがある:

プリフィックスがあった場合、K レジスタ (11 ビット) の内容と IMM5 (5 ビッ

) を連結した即値の定数で、RB オペランドが置換されます。 この 16 ビット

値は 32 ビットにゼロ拡張されます。そしてビットごとに反転されて、RA でビッ トごとに論理積が行なわれます。 この結果は RA に書き込まれます。

条件コード 条件コード 条件コード

条件コード: フラグ:

N: 結果ビット 31

Z: 結果がゼロの場合に設定、それ以外の場合はクリア 命令のフォーマット

命令のフォーマット 命令のフォーマット

命令のフォーマット: RR、Ri5 命令フィールド

命令フィールド 命令フィールド

命令フィールド: A = オペランド RA のレジスタ・インデックス B = オペランド RB のレジスタ・インデックス IMM5 = 5 ビットの即値

前に前に

前に前に PFX (RR) がないがないがないがない:

15 14 13 12 11 10 9 8 7 6 5 4 3 2 1 0

0 0 1 1 1 1 B A

前に 前に 前に

前に PFX (Ri5) があるがあるがあるがある:

15 14 13 12 11 10 9 8 7 6 5 4 3 2 1 0

0 0 1 1 1 1 IMM5 A

N V Z C

-

-2

命命命命令 令令令 セセセセッ ッッット トトト

ASR

右算術シフト 右算術シフト 右算術シフト 右算術シフト

処理 処理 処理

処理: RA(RA >> RB[4..0]), RA[31] で左から埋め込み アセンブラの構文

アセンブラの構文 アセンブラの構文

アセンブラの構文: ASR %rA,%rB 例例

例例: ASR %L3,%g0 ; %L3 を %g0 ビット右にシフト

説明説明

説明説明: RA の値を RB の値だけ算術的に右にシフトし、結果を RA に格納します。 RB の

ビット 31..5 は無視されます。 RB[4..0] の値が 31 の場合、RA は RA の元の符号 に応じてゼロまたは負の数になります。

条件コード 条件コード 条件コード

条件コード: フラグ: 影響なし

命令のフォーマット 命令のフォーマット 命令のフォーマット

命令のフォーマット: RR 命令フィールド

命令フィールド 命令フィールド

命令フィールド: A = RA オペランドのレジスタ・インデックス B = RB オペランドのレジスタ・インデックス

15 14 13 12 11 10 9 8 7 6 5 4 3 2 1 0

0 0 1 0 1 0 B A

N V Z C

- - -