インテルのみ表示可能 — GUID: iga1409765302920
Ixiasoft
インテルのみ表示可能 — GUID: iga1409765302920
Ixiasoft
8.5.55. ldbu / ldbuio
命令 | メモリーまたはペリフェラル I/O からの符号なしバイトのロード |
演算 | rB ← 0x000000 : Mem8[rA + σ(IMM16)] |
アセンブラー構文 | ldbu rB, byte_offset(rA) ldbuio rB, byte_offset(rA) |
例 | ldbu r6, 100(r5) |
説明 | rA と命令の符号付き 16 ビット即値の合計で指定される有効なバイトアドレスを計算する。レジスター rB に目的のメモリーバイトをロードし、ゼロは 8 ビットの値を 32 ビットに拡張する。 |
使用法 | データキャッシュがあるプロセッサーでは、この命令はメモリーからではなくキャッシュから目的のデータが取り出せる。ペリフェラル I/O にはldbuio命令を使用する必要がある。データキャッシュがあるプロセッサーではldbuioはキャッシュをバイパスし、Avalon-MM データ転送の生成が可能。データキャッシュがないプロセッサーでは、ldbuioはldbuのように動作する。 データキャッシュについて詳しくは、「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 | 0x03 |
ビットフィールド | |||||||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
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 | 0x23 |