我需要将功能参数存储到RAM吗?

时间:2018-05-30 14:48:27

标签: assembly atmel codevisionavr

假设功能

void foo(uint8_t value)
{
    somearray[some_idx] = value;
}

CodeVision产生以下内容

ST   -Y,R26    // the parameter "value" is in R26
;   value -> Y+0

LDS  R30,_some_idx
LDI  R31,0
SUBI R30,LOW(-_somearray)
SBCI R31,HIGH(-_somearray)    

LD   R26,Y
STD  Z+0,R26

R26与Y的存储和加载是完全没必要的,并且没有任何2 + 2个循环。我只想了解为什么CodeVision会这样做,因为它通常非常聪明。

0 个答案:

没有答案