我的目标是将下面的 C 代码转换为 MIPS 程序集。我觉得我错过了我的代码中的一个关键部分。有人可以解释我做错了什么以及我需要做些什么来解决这个问题吗?
这是C代码:
char str[] = "hello, class";
int len = 0;
char *ptr = str;
while (*ptr && *ptr != ’s’)
++ptr;
len = ptr - str;
到目前为止,这是我的代码:
.data
myStr: .asciiz "hello, class"
s: .asciiz "s"
main:
la $t0, myStr
la $t1, s
lbu $t1, 0($t1)
loop:
beq $t0, $t1, continue
addi $t0, $t0, 1
j loop
continue:
sub $v0, $t0, $t1