At 01:10 PM 11/30/2012, Ladislav Lacina wrote: >I haven't expect that somebody on this forum doesn't understand >"seges lea di,A" instruction. So explanation:LEA DI,a - load address >of A into DS:DISEGES LEA DI,a load address of A into ES:DI
Careful! As I mentioned, I have never see or used the SEGES instruction and I am using Borland Pascal 7 ever since it was released, in fact almost daily (ok, weekly) use it for a lot of "quick and dirty" stuff... And I am using x86 assembler for pretty much 30 years by now! I don't have the time to verify in a debugger or via disassembly what it exactly is supposed to do, but as I mentioned, the proper instructions to do so without any doubts would be "LES DI, a" as I mentioned in my previous post. That will properly load both segment and offset as expected for the function call, if that in fact is the (sole) source of the problem. Tom's push ss/pop es assumes that "a" is a local variable on the stack and will work only in exact that case, my version will work regardless where "a" is located... Ralf ------------------------------------------------------------------------------ Keep yourself connected to Go Parallel: TUNE You got it built. Now make it sing. Tune shows you how. http://goparallel.sourceforge.net _______________________________________________ Freedos-devel mailing list Freedos-devel@lists.sourceforge.net https://lists.sourceforge.net/lists/listinfo/freedos-devel