如果只是用到不带参数的ret的话,就是返回主程序的时候pop出之前push的ip(远转移的话还有cs)。如果用的是带参数的ret的话,也就是retf指令,参数n表示在ret的基础上还在再将sp指针向后移动n个字节。也就是不仅仅弹出ip和cs,还多弹出了数据。
没影响,不用才会影响,ret是对于CALL后的返回,即恢复CALL时入栈的EIP值,应该是属于短跳吧。长跳的要恢复ECS,EIP两寄存器,好像是用retn,
子程序是RET,如果是中断必须是RETI