我的目标是把C代码翻译下面MIPS汇编。我觉得我错过了我的代码中的关键部分。有人可以解释我做错了什么,我需要做什么来解决问题吗?我有这个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
好了,所以我只是把那进入死循环,为什么我必须有它的循环? – user977154 2012-02-07 02:33:21
而你并没有检查nul字符。 – 2012-02-07 02:35:10
不,可以避开循环 - 它是从myStr中加载一个需要在循环中的字符。 – 2012-02-07 02:35:46