用 call far 来调用的时候,用 retf,否则用 ret
其实也无所谓,系统自己会做好一切的,只要你的 call 和 函数申明没有错

解决方案 »

  1.   

    弹一个或两个用ret,弹两个用retf
      

  2.   

    在WIN32下由于采用FLAT模式,所以一般不会修改段寄存器,所以一般的调用
    返回都用RET,只有1种例外,就是你通过调用门由RING3,进入RING0,则CS会
    有改变,所以当从RING0返回RING3时必须使用RETF。
      

  3.   

    本问题wowocock(机器猫)已经给出答案,请贴主结贴,从今天算起,如果3天内没有结贴,本人强制结贴
      

  4.   

    在写程序时如果不是出于跳转的目的,仅仅是为了从函数中返回则统一使用ret就可以了,汇编器会为你选用合适的指令