xtensa架构学习(二)--存储指令

目录

一 存储指令概述

二 存储指令详述

S8I (RR8): 8位存储(8位偏移)

S16I (RR8): 16位存储(8位移位偏移)

S32I (RR8): 32位存储(8位移位偏移)


一 存储指令概述

存储指令 存储指令在地址形成方面类似于加载指令。存储内存错误不是同步异常;预计内存系统将使用中断来指示存储错误。

只有S32I和S32I.N可以访问InstRAM。

表1 显示了核心架构中的加载指令。

指令格式定义
S8IRR88位存储(8位偏移)
S16IRR816位存储(8位移位偏移)
S32IRR832位存储(8位移位偏移)

二 存储指令详述

存储指令与加载指令类似,在地址生成方面。存储内存错误不是同步异常;预期内存系统将使用中断来指示存储错误。只有S32I和S32I.N可以访问InstRAM。

以下是每种存储指令的格式、使用示例和注意事项:

  1. S8I (RR8): 8位存储(8位偏移)

    • 格式: S8I Rd, Rs, [Rt]
    • 示例:
      assembly
      1S8I a0, a1, [a2 + 4]
      这条指令将寄存器a1的低8位存储到地址a2+4处。
    • 注意事项: 偏移量必须是8位的倍数。
  2. S16I (RR8): 16位存储(8位移位偏移)

    • 格式: S16I Rd, Rs, [Rt]
    • 示例:
      assembly
      1S16I a0, a1, [a2 + 8]
      这条指令将寄存器a1的低16位存储到地址a2+8处。
    • 注意事项: 偏移量必须是8位的倍数。
  3. S32I (RR8): 32位存储(8位移位偏移)

    • 格式: S32I Rd, Rs, [Rt]
    • 示例:
      assembly
      1S32I a0, a1, [a2 + 12]
      这条指令将寄存器a1存储到地址a2+12处。
    • 注意事项: 偏移量必须是8位的倍数。

这些指令用于将数据从寄存器存储到内存中。偏移量是一个8位的移位,这意味着它可以是0到255之间的任意值。在使用这些指令时,确保偏移量满足要求。

  • 2
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值