定义一个简单的重入函数,代码如下
unsigned int func(unsigned int a)reentrant
{unsigned int i;
i = a;
return i;
}
void main(void)
{
unsigned int i;
i = func(4);
}
函数运行完有一下两句代码:
MOV DPTR,#0x0004
LJMP C?ADDXBP
作用就是将重入函数的仿真堆栈撤销,将 ?C_XBP指向0x0000;
本文深入解析了重入函数的概念,并详细解释了如何通过特定代码实现仿真堆栈撤销,以及该操作对程序执行流程的影响。
定义一个简单的重入函数,代码如下
unsigned int func(unsigned int a)reentrant
{}
函数运行完有一下两句代码:
MOV DPTR,#0x0004
LJMP C?ADDXBP
作用就是将重入函数的仿真堆栈撤销,将 ?C_XBP指向0x0000;
825
1995

被折叠的 条评论
为什么被折叠?