У меня проблемы с написанием рекурсивной функции в сборке MIPS для вычисления расстояния между двумя строками. Функция должна принимать четыре параметра: string_a
, string_b
, length_string_a
, length_string_b
и возвращать расстояние между двумя строками. Например, findDistance("Sun", "Son", 3, 3)
должен return 1
, то есть сколько раз необходимо изменить первую строку, чтобы она напоминала вторую. Функция должна return -1
, если длина каждой из двух строк меньше 0
Вот то, что я пытался сделать до того, как ушел в отставку. Мне просто нужен кто-то, чтобы указать мне правильное направление, и я могу закончить sh it
.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