Nios II Gen2 プロセッサー・リファレンス・ガイド

ID 683836
日付 10/28/2016
Public
ドキュメント目次

8.5.88. sth / sthio

命令 メモリーまたはペリフェラル I/O へのハーフワードのストアー
演算

Mem16[rA + σ(IMM16)] ←  rB15..0

アセンブラー構文

sth rB, byte_offset(rA)

sthio rB, byte_offset(rA)

sth r6, 100(r5)

説明

rA の値と命令の符号付き 16 ビット即値の合計で指定される有効なバイトアドレスを計算する。rB の下位ハーフワードを有効なバイトアドレスで指定されたメモリー位置に格納する。有効なバイトアドレスは、ハーフワード・アライメントされる必要がある。バイトアドレスが 2 の倍数でない場合、演算は未定義である。

使用法

データキャッシュを備えたプロセッサーでは、この命令は Avalon-MM データ転送を即座に生成しない。ペリフェラル I/O では sthio 命令を使用する必要がある。データキャッシュを備えたプロセッサーでは、sthioはキャッシュをバイパスし、Avalon-MM データ転送の生成が保証されている。データキャッシュがないプロセッサーでは、sthiosthのように動作する。

例外

スーパーバイザー専用データアドレス

ミスアライメント・データ・アドレス

TLB 許可違反 ( 書き込み )

高速 TLB ミス ( データ )

ダブル TLB ミス ( データ )

MPU 領域違反 ( データ )

命令型

I

命令フィールド

A = オペランド rA のレジスター・インデックス

B = オペランド rB のレジスター・インデックス

IMM16 = 16 ビットの符号付き即値

表 113.  sth
ビットフィールド
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 0x0d
表 114.  sthio
ビットフィールド
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 0x2d