mxj
mxj
驱动牛犊
驱动牛犊
  • 注册日期2001-04-19
  • 最后登录2003-08-24
  • 粉丝0
  • 关注0
  • 积分0分
  • 威望0点
  • 贡献值0点
  • 好评度0点
  • 原创分0分
  • 专家分0分
阅读:1338回复:4

2个问题,请赐教。

楼主#
更多 发布于:2001-12-10 01:42
被调用者清除(堆)栈和调用者清除(堆)栈
他们到底有什么区别。
NEAR和FAR到底有什么区别。
谢谢。 :)
peng-416
驱动小牛
驱动小牛
  • 注册日期2001-03-23
  • 最后登录2016-01-09
  • 粉丝0
  • 关注0
  • 积分1分
  • 威望2点
  • 贡献值0点
  • 好评度1点
  • 原创分0分
  • 专家分0分
沙发#
发布于:2001-12-10 08:58
这是编译器的一种约定了.也就是C和PASCAL两种了.通常没有什么关系.
NEAR是16位,FAR是32位.(I386 Platform).
matt
驱动中牛
驱动中牛
  • 注册日期2001-07-24
  • 最后登录2016-02-25
  • 粉丝0
  • 关注0
  • 积分0分
  • 威望0点
  • 贡献值0点
  • 好评度0点
  • 原创分0分
  • 专家分0分
板凳#
发布于:2001-12-10 09:48
被调用者清除(堆)栈和调用者清除(堆)栈
他们到底有什么区别。
NEAR和FAR到底有什么区别。
谢谢。 :)


一般段内调用,用near,此方式只将下一指令的IP压栈;而far,除了压栈ip外,还要将cs压栈。

有关程序调用约定,参见msdn,或用debug尝试尝试。

System Internals http://sys.xiloo.com
banana
驱动牛犊
驱动牛犊
  • 注册日期2001-07-28
  • 最后登录2001-12-10
  • 粉丝0
  • 关注0
  • 积分0分
  • 威望0点
  • 贡献值0点
  • 好评度0点
  • 原创分0分
  • 专家分0分
地板#
发布于:2001-12-10 15:19
--------------------------------------
被调用者清除(堆)栈和调用者清除(堆)栈
他们到底有什么区别。
NEAR和FAR到底有什么区别。
谢谢。
------------------------------
被调用者清除(堆)栈和调用者清除(堆)栈的区别你可以看API和一般程序的ASM代码,他们的RETURN语句不同,被调用者清除(堆)栈的RETURN后会有个数值.
NEAR和FAR在TC31中有区别,在WINDOWS中已没有了.

趁着这奈何天,伤怀日,寂寥时,试谴愚衷!
mxj
mxj
驱动牛犊
驱动牛犊
  • 注册日期2001-04-19
  • 最后登录2003-08-24
  • 粉丝0
  • 关注0
  • 积分0分
  • 威望0点
  • 贡献值0点
  • 好评度0点
  • 原创分0分
  • 专家分0分
地下室#
发布于:2001-12-10 17:02
谢谢各位。
被调用者清除栈的好象是包含啦栈Claer Code。
但是他们的行为好像没有什么区别,这2者要怎么正确运用。
游客

返回顶部