0x1f1 wrote: The only thing that I can't understand is that when my DOS Application that use INT 13h enter at INT 13h it find the instruction LES AX,SP that stop the application. What is the instrunction LES AX,SP and why this instruction stop the DOS application that I write?
LES can't have a register for its second operand, see:
http://www.fermi.mn.it/linux/quarta/x86/lgs.htm
I understand that NTVDM uses the fault generated by this instruction to transfer from V86 mode to Windows code running in normal protected mode.
In any case, it's not actually this instruction that's causing the problem (though if you're tracing it in a debugger, the debugger will probably stop at this instruction because of the V86 -> Normal protected mode transition).
LES AX, SP is just part of the processing of INT 13h. In the course of that processing, NTVDM is determining that you're trying to do something that it doesn't support, and is giving you an error message.