LINUX下可以编译16位的C,让汇编调用吗,该如何解决

LINUX下可以编译16位的C,让汇编调用吗
实模式下,汇编在LINUX下使用CALL 调用C函数,将CS IP压栈,C返回的时候由于是32位,弹出栈不是原来的CS IP了 怎么办 已经试过__asm__(".code16gcc"); 但是没用
------解决思路----------------------
理论上是可以的,如果你的调用有错误,要实际看是生成asm代码错了,还是asm和c的接口有问题。