開発日記

Erlangをダラダラ書きます。

アドレッシング・モード RV32Iの例

レジスタ間接(ベースオフセット/レジスタオフセット)

ロード命令

1. 符号拡張1バイトロード

レジスタrs1に符号付き符号拡張即値を加えた値を有効アドレスとして1バイトロードして,符号拡張してレジスタrdに書き込む.

ld rd, offset(rs1)
2. ゼロ拡張1バイトロード

レジスタrs1に符号付き拡張即値を加えた値を有効アドレスとして1バイトロードして,ゼロ拡張してレジスタrdに書き込む.

lbu rd, offset(rs1)
3. 符号拡張2バイトロード

レジスタrs1に符号付き拡張即値を加えた値を有効アドレスとして2バイトロードして,符号拡張してレジスタrdに書き込む.

lh rd, offset(rs1)
4. ゼロ拡張2バイトロード

レジスタrs1に符号付き拡張即値を加えた値を有効アドレスとして2バイトロードして,ゼロ拡張してレジスタrdに書き込む.

lhu rd, offset(rs1)
5. 4バイトロード(32bitだから符号拡張なし)

レジスタrs1に符号付き拡張即値を加えた値を有効アドレスとして4バイトロードしてレジスタrdに書き込む.

lhu rd, offset(rs1)

参考文献

qiita.com