打印

stm8 iar中,为什么进入中断后要额外操作A寄存器

[复制链接]
1748|4
手机看帖
扫描二维码
随时随地手机跟帖
跳转到指定楼层
楼主
solo777|  楼主 | 2012-1-9 16:37 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
mian.c中有一个函数
u32 add(u32 x,u32 y)
{
  return x+x+y+y+x;

}

中断函数是
INTERRUPT_HANDLER(EXTI_PORTC_IRQHandler, 5)
{
u32 ii= add(323,424);}

查看这个代码的汇编文件,进入后,竟然对A寄存器额外操作

132          INTERRUPT_HANDLER(EXTI_PORTC_IRQHandler, 5)
    133          {
   \                     EXTI_PORTC_IRQHandler:
   \                     _interrupt_7:
   \   000000 8A                    PUSH      CC
   \   000001 84                    POP       A
   \   000002 A4BF                  AND       A, #0xbf
   \   000004 88                    PUSH      A
   \   000005 86                    POP       CC
   \   000006 8D000000              CALLF     L:?push_l0
   \   00000A 8D000000              CALLF     L:?push_l1
    134            /* In order to detect unexpected events during development,
    135               it is recommended to set a breakpoint on the following instruction.
    136            
    137            
    138            */
    139            u32 ii= add(323,424);
   \   00000E AE01A8                LDW       X, #0x1a8
   \   000011 BF00                  LDW       S:?w3, X
   \   000013 5F                    CLRW      X
   \   000014 BF00                  LDW       S:?w2, X
   \   000016 AE0143                LDW       X, #0x143
   \   000019 BF00                  LDW       S:?w1, X
   \   00001B 5F                    CLRW      X
   \   00001C BF00                  LDW       S:?w0, X
   \   00001E 8D000000              CALLF     add
    140            
    141          }
   \   000022 8D000000              CALLF     L:?pop_l1
   \   000026 8D000000              CALLF     L:?pop_l0
   \   00002A 80                    IRET
沙发
solo777|  楼主 | 2012-1-9 16:39 | 只看该作者
这简直就是像小偷,偷偷从堆栈中拿出一个东西,修改了,再放回去!

堆栈里面的东西,不再可靠!

使用特权

评论回复
板凳
solo777|  楼主 | 2012-1-9 16:52 | 只看该作者
在线等呀!这个太恐怖了!怎么会出现这种情况

使用特权

评论回复
地板
香水城| | 2012-1-9 16:53 | 只看该作者
这简直就是像小偷,偷偷从堆栈中拿出一个东西,修改了,再放回去!

堆栈里面的东西,不再可靠!
solo777 发表于 2012-1-9 16:39


你都不知道它在做什么,凭什么就说 简直就是像小偷 ?

使用特权

评论回复
5
solo777|  楼主 | 2012-1-9 16:55 | 只看该作者
我理解错了!

应该弹出的是cc,cc弹到A,

使用特权

评论回复
发新帖 我要提问
您需要登录后才可以回帖 登录 | 注册

本版积分规则

83

主题

375

帖子

2

粉丝