各位专家:
在调试过程中,会出现简单的赋值语句执行结果不正确现象,查看反汇编代码,发现如下情况:
正确编译结果为:
LDW B4; NOP; STD B4, B15[12];
错误编译结果为:
SWBP 0; NOP; STD B4,B15[12];
遇到错误结果重新编译后能得到正确的结果
请问专家产生以上现象的原因是什么?查了一下感觉不像是堆栈溢出,怎么避免???
非常感谢!!!
This thread has been locked.
If you have a related question, please click the "Ask a related question" button in the top right corner. The newly created question will be automatically linked to this question.
各位专家:
在调试过程中,会出现简单的赋值语句执行结果不正确现象,查看反汇编代码,发现如下情况:
正确编译结果为:
LDW B4; NOP; STD B4, B15[12];
错误编译结果为:
SWBP 0; NOP; STD B4,B15[12];
遇到错误结果重新编译后能得到正确的结果
请问专家产生以上现象的原因是什么?查了一下感觉不像是堆栈溢出,怎么避免???
非常感谢!!!
设置的是相同的调试选项,相同的编译器版本。把L2中的资源放到共享里就不出现了,但是从map看不存在L2溢出的问题。。。。
您好:
正确的赋值语句: FDCD LDW.D2T2 *B15[15],B4
6C6E NOP
DD45 STW.D2T2 B4,*B15[10]
错误的赋值语句: FDCD SWBP 0
6C6E NOP
DD45 STW.D2T2 B4,*B15[9]
感觉还是堆栈问题,把大数组从L2放到共享就没出现了,但是我看map文件,L2的空间还有富余