+ -
当前位置:首页 → 问答吧 → 新手求助windlx小问题

新手求助windlx小问题

时间:2011-11-17

来源:互联网

我想把体系结构书中的一个程序在windlx中模拟,程序如下:
[code=C/C++]for   (i=100;   i> 0;   i--)
    x[i]   =   x[i]   +   2;   [/code]
转换成MIPS如下:
Loop:   LD         F0,   0(R1)  
                    ADDD   F4,   F0,F2  
                    SD         0(R1),   F4  
                    SUBI       R1,   R1,#8  
                    BENZ   R1,   Loop  
我在windlx尝试的程序如下:

                  addi   r2,r0,2         //给r2赋值2
                  movi2fp   f2,r2     //转换为浮点
                  cvti2d   f6,f2     //转换为double,scaler是f6,值为2
                  addi   r1,r0,100     //这句话应该不对。疑问在这里:程序循环100次,而   r1代表一个地址,不知如何给r1赋值。
loop:   ld   f0,0(r1)
                  addd   f4,f0,f6
                  sd   0(r1),f4
                  subi   r1,r1,#8
                  bnez   r1,loop
                  trap   0

书上的mips程序中R1是地址,通过递减R1使其指向下一个元素地址,再load下一个元素。在windlx中怎么写能够让循环执行100次呢?本人新手,建议,参考资料不限。谢谢。

作者: pengpeng2019   发布时间: 2011-11-17

对windlx不熟,帮顶下。

作者: mydo   发布时间: 2011-11-18