假设我们有一个mips代码如下
loop: ld f2, 0(r1) ;X[i]
ld f3, 0(r2) ;Y[i]
mult f4, f2, f3
sd f4, 0(r2) ;Y[i]=Y[i]*X[i]
addi r1, r1, #8 ;
addi r2, r2, #8 ;
sub r3, r5, r2 ;
bnz r3, loop ;this is what I don't get
我的教授曾经说过这个循环条件会起作用,对不起,这个c代码只是一个for循环,条件为i< = 1024和mult操作。
但是我不知道这是如何工作的,关于相对位置,我认为r5需要预先加载一些值才能使条件起作用。同样在c中我们增加一个,但是在mips中我们增加8,这是字节可寻址的内存,8个字节,2个字用于浮点数。但是我仍然没有得到如何转换为1024次迭代。