Computer science 使用RISC-V的代码一个程序,它在序列中找到最小值并将其与第一个值交换

Computer science 使用RISC-V的代码一个程序,它在序列中找到最小值并将其与第一个值交换,computer-science,riscv,Computer Science,Riscv,问题是:给定一个后跟0的非零整数序列,找到最小的 序列中的整数,然后将其与序列开头的整数交换。使用 DD汇编程序命令,用于将初始测试序列存储在内存的开头 121, 33, -5, 242, -45, -12, 0. 将解决方案另存为名为bex2b.asm的文件 未来可能的用途 问题:我知道如何找到最小的值,但我被困在如何将该值与序列的第一个值交换上 src: DD -1, 5, -3, 7, 0 add x6, x0, x0 ld x7, src(x

问题是:给定一个后跟0的非零整数序列,找到最小的 序列中的整数,然后将其与序列开头的整数交换。使用 DD汇编程序命令,用于将初始测试序列存储在内存的开头 121, 33, -5, 242, -45, -12, 0. 将解决方案另存为名为bex2b.asm的文件 未来可能的用途

问题:我知道如何找到最小的值,但我被困在如何将该值与序列的第一个值交换上

src:     DD -1, 5, -3, 7, 0

         add x6, x0, x0
         ld x7, src(x6)
         addi x5, x7, 0

        beq x5, x0, end

loop:   blt x7, x5, skip
        addi x7, x5, 0

skip:   addi x6, x6, 8
        ld x5, src(x6)
        bne x5, x0, loop

end:    addi x5, x7, 0
        ebreak x0, x0, 0

在这方面的一些帮助将不胜感激

交换到数组元素涉及两次写入,在RISC V中通过
sd
完成,计数器部分写入
ld
。通过
sd
将较小的值存储到起始位置,并将原始值从起始位置存储到找到最小值的位置。(当然,在用较小的值覆盖该位置之前,需要捕获原始值。)