在RISC-V中遍历数组的不同方法

问题描述 投票:0回答:1

我目前正在通过RISC-V学习基本的汇编语言,我对循环遍历数组的有效方法有些困惑。

如果给定a0作为指向整数数组的指针,这足以移动到下一个元素吗?

  • lw s0,0(a0)#指向数组的指针存储在s0中
  • lw s0 4(s0)#每次您要移至下一个元素时调用此命令吗?

如果我也想在该位置修改元素的实际值,我可以简单地使用sw吗?

我也知道使用slli / srli也可以让您转变,任何人都可以解释这个概念吗?

谢谢!

assembly riscv risc
1个回答
0
投票

遍历数组(具有n个元素)的基本模式是这样的:

  1. 将数组起始地址存储在寄存器X中
  2. 将地址存储在寄存器Y中最后一个元素之后(例如Y = X + n * 4
  3. 取消引用X(即从X中存在的地址加载单词)并对该数组元素进行操作
  4. 按字号增加X(例如4个字节)
  5. 分支到步骤3。如果X仍小于Y
  6. 遍历完成
© www.soinside.com 2019 - 2024. All rights reserved.