strstr函数翻译成mips
时间: 2023-10-12 13:19:11 浏览: 44
MIPS指令集下的strstr函数翻译可以采用以下代码:
```
## $a0 - string1, $a1 - string2, $t0 - temp, $t1 - temp
str_instr:
li $v0, 0 # 子串出现次数
la $t0, ($a0) # 获取字符串1首地址
la $t1, ($a1) # 获取字符串2首地址
lw $t2, 0($t1) # 获取字符串2首字符
loop:
beqz $t2, end # 字符串2扫描结束则退出
li $t3, 0 # 计数器清零
lw $t4, 0($t0) # 初始化字符串1首字符
match:
beqz $t4, not_match # 字符串1扫描结束则退出
bne $t2, $t4, next # 字符不匹配则跳转
addi $t0, $t0, 4 # 匹配则扫描下一个字符
addi $t1, $t1, 4
lw $t4, 0($t0)
lw $t2, 0($t1) # 加载字符串2下一个字符
addi $t3, $t3, 1 # 匹配次数递增
bne $t3, $t8, match # 继续匹配下一个字符
match_end:
addi $t0, $t0, -($t3 * 4) # 复位字符串1指针
addi $v0, $v0, 1 # 统计匹配次数
j next
not_match:
addi $t0, $t0, 4 # 字符串1指针回溯
b next
next:
lw $t4, 0($t0) # 加载字符串1下一个字符
b loop
end:
jr $ra
```
相关推荐
![pdf](https://img-home.csdnimg.cn/images/20210720083512.png)
![pdf](https://img-home.csdnimg.cn/images/20210720083512.png)
![pdf](https://img-home.csdnimg.cn/images/20210720083512.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)