- 29
- 9月
IAR对局部部变量,一般是采取虚拟寄存器的方式来进行访问。如果是外部堆栈的话,有时它会将SPH,SP的值赋至DPTR中,然后使用DPTR来对堆栈进行操作。
然而,除了将SPH和SP的值赋至DPTR外,它还会做一些动作。
ANL A,#0x03 ; Maks out relevant ESP bits.<br />
ORL A,#(HIGH(sfb(EXT_STACK)) & 0xFC)<br />
MOV DPH,A
其实就是会将堆栈的高6BIT地址强制不可改。具体作用暂时不明。
不过,如果有做一些多BIN的工程时,可就要小心了,需要保证堆栈的高6BIT地址不变,否则可能出一些不可预料的错误。
这是确切信息我要找的,谢谢! Arron
好高深的问题,完全不懂呢
之前也有碰到过这个问题,用时就很小心了。但一直不知道原因,楼主现在可知道原因?
@石牛
IAR的BUG。