ne, geht so nicht. du darfst keinen far-call starten, sondern die werte auf den stack hauen, die bei einem iret restored werden (cs,eip,eflags (andere reihenfolge warscheinlich!)) und dann hinspringen. sonst hauts den weg beim iret.
theoretisch könnte man schon biosints auf diese weise benutzen, nur gibt das probleme mit den opcodes. im RM (16bit!) wird vor jede operation mit 32bit-registern das präfix 0x66 gestellt, im PM (32bit!) wird vor jede operation mit 16bit-registern das präfix 0x66 gestellt. wenn du jetzt bei 32bit in eine 16bit-routine springst, dann verdreht er immer eax und ax und so weiter. an sich kein problem, nur bei sachen alla "shl" oder sowas müsste man 16 bits weitershiften, damit das gleiche rauskommt, was aber nicht gemacht wird. deswegen ist das aufrufen an sich schon möglich, nur wird halt nur matsch rauskommen, wenn du nicht sogar ne exception wegen invalid-opcode bekommst.