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

ビット・データをロード ビット・データをロード ビット・データをロード ビット・データをロード

FILL8

メモリから 32 ビット・データをロード ビット・データをロード ビット・データをロード ビット・データをロード

メモリから メモリから

メモリから 32 ビット・データをロード ビット・データをロード ビット・データをロード ビット・データをロード

処理 処理 処理

処理: 前に前に前に前に PFX がないがないがないがない: RAMem32[align32(RB)]

前に 前に 前に

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

RAMem32[align32(RB +σ(K) x 4))]

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

アセンブラの構文: LD %rA,[%rB]

例 例 例

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

LD %g0,[%i3] ; [%i3] のワードを %g0 にロード 前に

前に 前に

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

PFX 7 ; ワード・オフセット

LD %g0,[%i3] ; [%i3+28] のワードを %g0 にロード 説明

説明 説明

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

メモリから RA に 32 ビットのデータ値をロードします。 データは常にRB の ビット 31..2 で指定するワード・アラインされたアドレスから読み込まれます (RB の 2 つの LSB は無視されます)。

前に 前に 前に

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

K の値は符号拡張され、ワード・スケールされた符号付オフセットとして使用 されます。 このオフセットは RB のベース・アドレス (ビット 1..0 は無視) に加 算され、最終的にワード・アラインされたアドレスからデータが読み込まれま す。

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

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

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

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

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

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

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

0 1 0 1 1 0 B A

N V Z C

- - -

-2

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

LDP

メモリから メモリから メモリから

メモリから 32 ビット・データをロード ビット・データをロード ビット・データをロード ビット・データをロード ( ポインタ・アドレッシング・モード ポインタ・アドレッシング・モード ポインタ・アドレッシング・モード ポインタ・アドレッシング・モード

)

処理 処理 処理

処理: 前に前に前に前に PFX がないがないがないがない:

RAMem32[align32(RP + (IMM5 x 4))]

前に 前に 前に

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

RAMem32[align32(RP + (σ(K : IMM5) x 4))]

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

アセンブラの構文: LDP [%rP,IMM5],%rA

例 例

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

LDP %o3,[%L2,3] ; [%L2 + 12] から %o3 をロード ;第 2 のレジスタ・オペランドは %L0、%L1、

;%L2、%L3 のどれかでなければなりません。

前に 前に 前に

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

LDP %o3,[%L2,%lo(100)] ; [%L2 + 400] から %o3 をロード 説明

説明 説明

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

メモリから RA に 32 ビットのデータ値をロードします。 データを読み込む位置 は、RP のビット 31..2 で指定するワード・アラインされたアドレス (RP の 2 つ の LSB は無視されます ) にIMM5 で指定する 5 ビットのワード・スケールさ れた符合なしオフセットを加算した位置になります。

この命令は LD に似ていますが、補足的な機能として、一命令で 4 つのベース・

ポインタのいずれかに正の 5 ビット・オフセットを適用することができます。

ベース・ポインタは、4 つのレジスタ %L0、%L1、%L2、%L3 のいずれかでな ければなりません。

前に前に

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

16 ビット・オフセットが、11 ビット K レジスタと IMM5 (5 ビット) を連結し て作成されます。 この 16 ビット・オフセット (K : IMM5) を32 ビットに符号拡 張し、4 倍し、RP のビット 31..2 に加算して、ワード・アラインされた有効ア ドレスが生成されます。

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

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

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

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

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

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

P = ベース・ポインタ・レジスタのインデックス、16 よりも小さい

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

1 0 1 1 P IMM5 A

N V Z C

- - -

-LDS

メモリから メモリから メモリから

メモリから 32 ビット・データをロード ビット・データをロード ビット・データをロード ( ビット・データをロード スタック・アドレッシング・モード スタック・アドレッシング・モード スタック・アドレッシング・モード スタック・アドレッシング・モード

)

処理 処理 処理

処理: RAMem32[align32(%sp + (IMM8 x 4))]

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

アセンブラの構文: LDS %rA,[%sp,IMM8]

例例

例例: LDS %o1,[%sp,3] ; スタック +12 から %o1 をロード

;第 2 のレジスタは %sp でなければなりません。

説明 説明 説明

説明: メモリから RA に 32 ビットのデータ値をロードします。 データを読み込む位置 は、%sp のビット 31..2 で指定するワード・アラインされたアドレス (%sp の 2 つの LSB は無視されます ) にIMM8 で指定する 8 ビットのワード・スケール された符合なしオフセットを加算した位置になります。

通常、ソフトウェアではスタック・ポインタとして、%o6 (つまり %sp) が使用 されます。 LDS の一命令で、%sp 上の 1K バイトの範囲にあるオフセットの分 かっているデータ・ワードにアクセスすることができます。

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

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

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

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

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

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

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

1 1 1 IMM8 A

N V Z C

- - -

-2

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

LSL

左論理シフト 左論理シフト 左論理シフト 左論理シフト

処理 処理 処理

処理: RA(RA << RB[4..0]), 右からゼロで埋め込み

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

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

例例: LSL %L3,%g0 ; %g0 ビットだけ %L3 を左シフト

説明説明

説明説明: RA の値は RB [4..0] のビット数だけ左にシフトされます (RB のビット 31..5 は

無視されます)。

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

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

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

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

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

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

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

0 0 0 1 1 0 B A

N V Z C

- - -