硬件:C6678
我定义了一个任务切换的结构体,如下
T_SP .set 0 +4
T_Startaddress .set 4 +4
T_A0 .set 8 +4
T_A1 .set 12 +4
…
T_A31 …
T_B0 …
…
T_B15 …
…
T_B31
T_Framesize …
然后我使用如下语句,把SP存储到*+A4(T_B15)的位置
STW SP,*+A4(T_15);
但是编译的时候报错:
B14 or B5 as long based displacement address
James Li2:
我试了下面这个小函数,可以编过
.global temp
.asg B15, SP T_SP .set 0 +4 T_Startaddress .set 4 +4 T_A0 .set 8 +4 T_A1 .set 12 +4
temp: STW SP,*+A4(T_SP) BNOP B3,5
wei wang6:
回复 James Li2:
前面的是能够编过的,但是对于后半段的,也就是T_xx代表的值比较大的时候,就不能编过了。
怀疑是A4能够偏移寻址的范围比较小,B14,B15的偏移寻址范围比较大?是这个原因吗?