我在 MIPS 程序集中编写递归函数来计算两个字符串之间的距离时遇到问题。 该函数应采用四个参数: string_astring_blength_string_alength_string_b并返回两个字符串之间的距离。 例如findDistance("Sun", "Son", 3, 3)应该return 1 ,这是第一个字符串需要更改为类似于第二个的次数。 如果两个字符串的长度都小于 0,函数应该return -1

这是我在空白之前尝试过的。 我只需要有人给我指明正确的方向,我就能完成它

.data

string_a: .ascii "Sun"

string_b: .ascii "Son"

length_str_a: .word 3

length_str_b: .word 3





.text

#copy starting address of each of the strings to registers

la $a0, string_a

la $a1, string_b

lw $a2, length_str_a

lw $a3, length_str_b



#call function findDistance



jal findDistance



#The function findDistance

findDistance:



#if length of strings <= 0 jump to error, else continue to find distance



#define base class





#recursive



#in the case that the lengths are 0 or less

error:

li $v0, -1

j return

#retun    
return:

j $ra

  ask by Hilda Bukutsa translate from so

本文未有回复,本站智能推荐:

2回复

在MIPS中一次遍历字符串一次1个字符

我在掌握MIPS中的字符串和字符概念时遇到问题。 如果我要遍历两个字符串并一次连接两个字符,我该怎么做? 可以说我有 我怎样才能遍历 提前致谢!
1回复

如果我在MIPS32程序集中将它的空间保留为.space,我是否需要用空值开始一个字符串?

我正在尝试使用 .space 保留空间以在其中存储字符串: 我从我的老师那里得到了一个示例代码,说我必须以空值 (0) 开始该字符串,但我不明白为什么,为什么需要这样做? 提前致谢!
1回复

如何从字符串中加载每个字节并将其转换为MIPS中的整数值?

例如,我有一个仅包含从1到f(即十六进制)的字符的字符串: 它是作为argvs之一从命令行传递的。 如何读取每个字符并将其转换为相应的整数? 我知道我们必须使用加载字节指令并为字符处理ASCII值,但现在确定如何将所有内容放在一起。 另外,由于输入字符串的长度是不确定的,我们如何计算
1回复

在MIPS中存储字符串

我会很矮。 我正在MIPS中制作一个程序,该程序从用户那里获取15个字符的字符串。 我无法将字符串保存在堆栈上。 请注意,我使用的是2D矩阵[20] [15],其中20是字符串,每个字符串都有15个字符。 请指导我。 在过去的10个小时中,我一直在尝试这种方法。
1回复

MIPS和XSPIM转换中的字符串

给定一个字符串,当我将其插入ASCII计算器时,我们说“长数字” 和 这是我第一次使用MIPS,并且我无法找到唯一的指南来教授如何使用它。 所以,我得到了32位,但是“长数字”似乎比32位还多? 因此,可以说“长数字”在内存中。 如果我想打印“长数字”,那将如何工作? 我对
1回复

在MIPS中比较字符串

以下代码比较两个字符串。 如果在Input找到C,它将使计数器递增。 我想知道代码中的问题所在。 它没有给出输出。
1回复

MIPS.asciiz第一个和最后一个字符总是相等

这是我的简单程序,它应该从 .data 获取字符串,将每个字符转换为大写,最后打印字符串。 输出: 仅更改第一个字符,并且始终将其转换为最后一个字符。 我已经学习了 2 周,因此非常感谢任何帮助。
1回复

如何在mips中将字符串保存到数组中

我对此代码有疑问。 我尝试通过输入输入字符串并将其保存到数组中,这是我的代码: 麻烦的是该程序显示了我通过输入输入的最后一个字符串,例如 请我需要一些帮助,非常感谢,祝您有愉快的一天。