阅读:1337回复:4
2个问题,请赐教。
被调用者清除(堆)栈和调用者清除(堆)栈
他们到底有什么区别。 NEAR和FAR到底有什么区别。 谢谢。 :) |
|
沙发#
发布于:2001-12-10 08:58
这是编译器的一种约定了.也就是C和PASCAL两种了.通常没有什么关系.
NEAR是16位,FAR是32位.(I386 Platform). |
|
板凳#
发布于:2001-12-10 09:48
被调用者清除(堆)栈和调用者清除(堆)栈 一般段内调用,用near,此方式只将下一指令的IP压栈;而far,除了压栈ip外,还要将cs压栈。 有关程序调用约定,参见msdn,或用debug尝试尝试。 |
|
|
地板#
发布于:2001-12-10 15:19
--------------------------------------
被调用者清除(堆)栈和调用者清除(堆)栈 他们到底有什么区别。 NEAR和FAR到底有什么区别。 谢谢。 ------------------------------ 被调用者清除(堆)栈和调用者清除(堆)栈的区别你可以看API和一般程序的ASM代码,他们的RETURN语句不同,被调用者清除(堆)栈的RETURN后会有个数值. NEAR和FAR在TC31中有区别,在WINDOWS中已没有了. |
|
|
地下室#
发布于:2001-12-10 17:02
谢谢各位。
被调用者清除栈的好象是包含啦栈Claer Code。 但是他们的行为好像没有什么区别,这2者要怎么正确运用。 |
|