インテルのみ表示可能 — GUID: iga1409765330650
Ixiasoft
インテルのみ表示可能 — GUID: iga1409765330650
Ixiasoft
8.5.56. ldh / ldhio
命令 | メモリーまたはペリフェラル I/O からのハーフワードのロード |
演算 | rB ← σ(Mem16[rA + σ(IMM16)]) |
アセンブラー構文 | ldh rB, byte_offset(rA) ldhio rB, byte_offset(rA) |
例 | ldh r6, 100(r5) |
説明 | rA と命令の符号付き 16 ビット即値の和で指定される有効なバイトアドレスを計算する。有効なバイトアドレスにあるメモリーのハーフワードでレジスター rB をロードし、16 ビット値を 32 ビットに拡張する。有効なバイトアドレスは、ハーフワード・アライメントされている必要がある。バイトアドレスが 2 の倍数でない場合、演算は未定義である。 |
使用法 | データキャッシュがあるプロセッサーでは、この命令はメモリーからではなくキャッシュから目的のデータを取り出すことができる。ldhio命令はペリフェラル I/O に使用する。データキャッシュがあるプロセッサーでは、ldhioはキャッシュをバイパスし、Avalon-MM データ転送を生成することが保証されている。データキャッシュのないプロセッサーではldhioはldhのように動作する。 データキャッシュについて詳しくは、「Nios II ソフトウェア開発ハンドブック」の「キャッシュおよび密結合メモリー」の章を参照。 |
例外 | スーパーバイザー専用データアドレス ミスアライメント・データ・アドレス TLB 許可違反 ( 読み出し ) 高速 TLB ミス ( データ ) ダブル TLB ミス ( データ ) MPU 領域違反 ( データ ) |
命令型 | I |
命令フィールド | A = オペランド rA のレジスター・インデックス B = オペランド rB のレジスター・インデックス IMM16 = 16 ビットの符号付き即値 |
ビットフィールド | |||||||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
31 | 30 | 29 | 28 | 27 | 26 | 25 | 24 | 23 | 22 | 21 | 20 | 19 | 18 | 17 | 16 |
A | B | IMM16 | |||||||||||||
15 | 14 | 13 | 12 | 11 | 10 | 9 | 8 | 7 | 6 | 5 | 4 | 3 | 2 | 1 | 0 |
IMM16 | 0x0f |
ビットフィールド | |||||||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
31 | 30 | 29 | 28 | 27 | 26 | 25 | 24 | 23 | 22 | 21 | 20 | 19 | 18 | 17 | 16 |
A | B | IMM16 | |||||||||||||
15 | 14 | 13 | 12 | 11 | 10 | 9 | 8 | 7 | 6 | 5 | 4 | 3 | 2 | 1 | 0 |
IMM16 | 0x2f |