Computer science 使用RISC-V的代码一个程序,它在序列中找到最小值并将其与第一个值交换
问题是:给定一个后跟0的非零整数序列,找到最小的 序列中的整数,然后将其与序列开头的整数交换。使用 DD汇编程序命令,用于将初始测试序列存储在内存的开头 121, 33, -5, 242, -45, -12, 0. 将解决方案另存为名为bex2b.asm的文件 未来可能的用途 问题:我知道如何找到最小的值,但我被困在如何将该值与序列的第一个值交换上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
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
将较小的值存储到起始位置,并将原始值从起始位置存储到找到最小值的位置。(当然,在用较小的值覆盖该位置之前,需要捕获原始值。)