Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/search/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Arrays MIPS搜索数组,实现堆栈_Arrays_Search_Assembly_Stack_Mips - Fatal编程技术网

Arrays MIPS搜索数组,实现堆栈

Arrays MIPS搜索数组,实现堆栈,arrays,search,assembly,stack,mips,Arrays,Search,Assembly,Stack,Mips,这来自Britton的《MIPS汇编语言编程》一书的练习6.2。我需要使用10个预设整数的字节大小数组,提示系统要求用户输入要搜索的数字。如果找到编号,则打印存储该编号的元素,如果未找到,则打印其他消息。我需要使用堆栈来实现这一点,我相信我得到了我的错误。我几乎可以肯定它在堆栈中,但我已经尝试了我能想到的一切。如有任何建议,将不胜感激。谢谢以下是我目前的代码: 已解决:代码已更新 X:.字节1、27、92、46、72、8、13、93、65、112 N:单词10 srch:.asciiz“请输入

这来自Britton的《MIPS汇编语言编程》一书的练习6.2。我需要使用10个预设整数的字节大小数组,提示系统要求用户输入要搜索的数字。如果找到编号,则打印存储该编号的元素,如果未找到,则打印其他消息。我需要使用堆栈来实现这一点,我相信我得到了我的错误。我几乎可以肯定它在堆栈中,但我已经尝试了我能想到的一切。如有任何建议,将不胜感激。谢谢以下是我目前的代码:

已解决:代码已更新

X:.字节1、27、92、46、72、8、13、93、65、112
N:单词10
srch:.asciiz“请输入要搜索的数字:”
posi:.asciiz“该编号位置位于元素中”
fals:.asciiz“该数字不在数组中。”
nxln:.asciiz“\n”
.文本
主:洛杉矶$s0,X
洛杉矶$s1,N
la$a0,srch
李$v0,4
系统调用
李$v0,5
系统调用
移动$t2,$v0
附加$sp,$sp,-24#堆栈准备
sw$s0,0($sp)
sb$s1,4($sp)
sb$t2,8($sp)
日航搜索
磅$t2,12($sp)
英镑$t3,16($sp)
加上$sp,$sp,24
洛杉矶a0美元,波西
李$v0,4
系统调用
李$v0,1
移动$a0,$t2
系统调用
李$v0,10
系统调用
搜索:
lw$t5,0($sp)#获得&X
磅$t8,4($sp)#获得N
磅$t7,8($sp)#获得V
移动$t6,$t8
addi$t6,$t6,-1#$t6=N-1
循环:
磅$t4,0($t5)#获取一个字符(始终在此处获取我的错误)
addi$t5,$t5,1#增量指针
beq$t4$t7,已找到
addi$t6,$t6,-1减量循环计数器
bgez$t6,循环
李$t4,-1
sw$t4,16($sp)
b出口
发现:
低于$t6、$t6、$t8
sb$t6,12($sp)
jr$ra
出口:
洛杉矶$a0,法尔斯
李$v0,4
系统调用
李$v0,10
系统调用

您使用
lb
加载
$t5
,但这是一个指针,它不是一个字节而是一个单词,因此需要
lw
。您还使用了
sb
$s0
设置它,这同样是错误的。非常感谢,修复了它。真不敢相信我忽略了这一点。