如何修改程序集以获得更多参考?

How to modify assembly to get more reference?

我对组装的概念很陌生,想知道我应该如何或在哪里集中精力完成一些事情

     1)modify the code above to handle vectors with 96 elements.
     2)How can i know the data reference generated.
     3)How can i know the instruction reference generated 

向量 Y = a * X + Y。向量 X 和 Y 各包含 96 个双浮点数,分别存储在地址 Rx 和 Ry 中。双浮点数占用 8 个字节(64 位)。假设寄存器可以包含 64 位并且 CPU 可以 load/store 通过仅生成一个地址(参考)

来实现双浮点数
L.D F0, a
    ADDI    R4, Rx, #512 : last address to load 

Loop:   L.D F2, 0(Rx)         : load X(i)
        MUL.D   F2, F2, F0         : a x X(i)
        L.D F4, 0(Ry)         :load Y(i)
        ADD.D   F4, F4, F2         : a x X(i)   + Y(i)
        S.D F4, 0(Ry)         : store into Y(i) 
        ADDI    Rx, Rx, #8        : increment index to X
        ADDI    Ry, Ry, #8         : increment index to Y
        SUB R20, R4, Rx     : compute bound
        BNEZ    R20, Loop        : check if done

大约 1)

代码有一个"loop"。当R20不为零时,BNEZ R20, Loop指令将执行流程改为Loop:标签后的指令。

所以你首先要搞清楚,R20的值是怎么计算出来的,循环要执行多少次。

给你一些提示:它是接近你想要的 96 的二次方值,弄清楚它需要你理解指针(地址)算法的工作原理以及为什么关于元素大小的信息是 8 个字节很重要。

然后你可以在source里调整一个常量让它循环96次