TI中文支持网
TI专业的中文技术问题搜集分享网站

什么时候需要对齐堆栈—-ASP!!!

最近在搞操作系统,发现一个问题,直接用C的中断服务程序,返回任务后接着运行会进入非法指令中断,咨询了一位老师后建议我用汇编写中断函数,然后再汇编中调用C函数,但是在调用C函数前需要用ASP指令对齐堆栈,调用后再用NASP恢复。

我的问题时:1〉都什么时候需要对齐堆栈?为什么需要对齐?

                        2〉C函数或编译器不能自动处理堆栈的对齐和恢复吗?

谢谢各位大神指点迷津。

Johnson Chen1:

你确定问题是由于堆栈没有对齐引起的吗?

最近在搞操作系统,发现一个问题,直接用C的中断服务程序,返回任务后接着运行会进入非法指令中断,咨询了一位老师后建议我用汇编写中断函数,然后再汇编中调用C函数,但是在调用C函数前需要用ASP指令对齐堆栈,调用后再用NASP恢复。

我的问题时:1〉都什么时候需要对齐堆栈?为什么需要对齐?

                        2〉C函数或编译器不能自动处理堆栈的对齐和恢复吗?

谢谢各位大神指点迷津。

zhihua pang:

回复 Johnson Chen1:

确定,因为去掉ASP和NASP指令后程序就不能正常运行了,运行结果是进入非法指令中断,我看手册上进入非法指令中断的条件中有一个是跟SP有关的。

赞(0)
未经允许不得转载:TI中文支持网 » 什么时候需要对齐堆栈—-ASP!!!
分享到: 更多 (0)