arrays - MIPS 汇编程序中的错误:“数据/堆栈中的错误地址”()
问题描述
我是编码和 MIPS 的新手。最近,我一直在尝试将数组和循环从 C 转换为 MIPS。
int i = 0;
while (user_name[i] != '\0') {
high_score.name[i] = user_name[i];
++i;
}
high_score.name[i] = '\0';
在 MIPS 中:
li $s2, 0
loop4:
lb $s3, user_name($s2) #
beqz $s3, string_endwhile # user name[i] != "\0"
la $s4, high_score # Load the value of high_score to s4
add $s4, $s4, 4 # Locate name in high_score
add $s4, $s4, $s2 # s4 in the loop
sb $s3, high_score($s4) # high_score.name[i] = user_name[i]
addi $s2, $s2, 1
j loop4
string_endwhile:
la $s4, high_score
add $s4, $s4, 4
add $s4, $s4, $s2
sb $zero, high_score($s4)
但是,当我尝试运行时,我的计算机会注意到此错误:
Exception occurred at PC=0x0040051c
Exception occurred in game.s at line: 812: sb $s3, high_score($s5) #high_score.name[i] = user_name[i]
Bad address in data/stack read: 0x2002011c
我试图修复它,但我没有这样做。
解决方案
推荐阅读
- c# - Yammer Rest API - 从组中获取消息无法正常工作
- solr - solr中是否有父子数据结构的替代方案?
- vue.js - 为什么缩小时标签消失了
- python - 无法在 Python 中添加逗号并删除大数字的悬挂零
- reactjs - 找不到变量:initialState。我正在尝试为 REACT NATIVE 中的每个数组项映射一个数组并显示组件
- django - 如何编写用于比较 django 访问值“{{cust_package}}”和 vue.js“<%radio_price%>”的 v-if 条件
- macos - 在 Mac OS 上更改默认 Apache 版本
- vba - 从 SharePoint 打开 Outlook 模板
- node.js - M1 Big Sur 上的 Npm 安装失败 - “usr/lib/libcurl.dylib(没有这样的文件或目录)”
- java - Jar 无法从实施项目中读取属性