第二十题 - Risc-V 汇编 - 数组元素查找
本节目录
题目要求
设计一个 C 语言函数 find_value,接受一个整数数组 arr、数组的长度 n、一个目标值 target,以及一个起始索引 start_index,返回目标值在数组中从指定起始索引开始的第一次出现的索引。如果目标值不在数组中或起始索引超出数组范围,则返回 -1。然后编写一个程序调用该函数,并输出结果。
示例
输入:
1,2,3,4,5
5
3
1
输出:
Index of target from start index: 2
输入
共需要 4 个参数:
- 一个整数数组 arr,以逗号分割,比如 1,2,3,4,5;
- 一个整数 n;
- 一个目标 target;
- 一个索引 start_index; 输入保证在 int 类型范围内。
输出
返回字符串格式 Index of target from start index: INDEX,INDEX 表示 target 在指定数组范围内的索引,若没有该元素,返回字符串 Target not found or start index out of range.。`
已有代码介绍
通过 main 调用,由内联汇编代码写的函数。
提示
- 使用 RISC-V 汇编指令替换 gcd 函数中的 PLACEHOLDER。
- a * 4 <=> a << 2
- "slli" 指令用于将某个数左移指定位后,存入指定的寄存器,具体参数请自行查阅手册
注意事项
- 保持输出格式为 Index of target from start index: INDEX。
- 使用内联汇编!
- 注意汇编的寄存器参数和直接参数的差别!