debug的时候有一个汇编指令retf 0002是什么意思,我只知道有retf指令,后面多个0002是什么意思呢?
最好用汇编指令解释下。
------解决方案--------------------
当函数的调用约定为__stdcall的时候,堆栈中的参数由被调用的函数在返回后清除,使用的指令是 ret X,X表示参数占用的字节数,CPU在ret之后自动弹出X个字节的堆栈空间。称为自动清栈。函数在编译的时候就必须确定参数个数,并且调用者必须严格的控制参数的生成,不能多,不能少,否则返回后会出错。 这也就说明了,为什么__stdcall调用约定的函数的参数个数,必须是固定个数的.
------解决方案--------------------
retf 还是 ret 意义类似吧。
retf x 的作用等同于
retfx 就是调用相应子程参数压栈所用到的字节数。
add sp,x