• 29
  • 9月

IAR对局部部变量,一般是采取虚拟寄存器的方式来进行访问。如果是外部堆栈的话,有时它会将SPH,SP的值赋至DPTR中,然后使用DPTR来对堆栈进行操作。

然而,除了将SPH和SP的值赋至DPTR外,它还会做一些动作。

ANL    A,#0x03         ; Maks out relevant ESP bits.
ORL     A,#(HIGH(sfb(EXT_STACK)) & 0xFC)
MOV    DPH,A

其实就是会将堆栈的高6BIT地址强制不可改。具体作用暂时不明。

不过,如果有做一些多BIN的工程时,可就要小心了,需要保证堆栈的高6BIT地址不变,否则可能出一些不可预料的错误。

» Tags:IAR, 堆栈

» 这篇文章共有2条评论,你可以在文章底部留下你的评论

  1. 2011-10-15 13:42

    这是确切信息我要找的,谢谢! Arron

  2. 叉叉兵 Says:
    2011-10-24 12:51

    好高深的问题,完全不懂呢

发表评论