最近在搞操作系统,发现一个问题,直接用C的中断服务程序,返回任务后接着运行会进入非法指令中断,咨询了一位老师后建议我用汇编写中断函数,然后再汇编中调用C函数,但是在调用C函数前需要用ASP指令对齐堆栈,调用后再用NASP恢复。
我的问题时:1〉都什么时候需要对齐堆栈?为什么需要对齐?
2〉C函数或编译器不能自动处理堆栈的对齐和恢复吗?
谢谢各位大神指点迷津。
This thread has been locked.
If you have a related question, please click the "Ask a related question" button in the top right corner. The newly created question will be automatically linked to this question.
最近在搞操作系统,发现一个问题,直接用C的中断服务程序,返回任务后接着运行会进入非法指令中断,咨询了一位老师后建议我用汇编写中断函数,然后再汇编中调用C函数,但是在调用C函数前需要用ASP指令对齐堆栈,调用后再用NASP恢复。
我的问题时:1〉都什么时候需要对齐堆栈?为什么需要对齐?
2〉C函数或编译器不能自动处理堆栈的对齐和恢复吗?
谢谢各位大神指点迷津。