On Wed, 07 Jul 2010 11:59:42 +0200, Reinhard Karcher <karcher1...@gmx.net>
wrote:
> Am 07.07.2010 11:12, schrieb bo...@geodb.org:
>> Hello
>>
>> I'm running DOSEMU on Ubuntu 10.10 (AMD64). One of my application I use
>> crashes with an "Invalid Opcode at..." when loaded. DOSEMU and "strace"
>> reports the following:
>>
>> !!! Illegal op f0 ff 07
>> ==============================================================
>> CPU exception 0x06 err=0x00000000 cr2=0009ce54 eip=0000c02b
>> ==============================================================
>> SIGILL while in vm86(): 11fe:a04b
>>
>> write(4, "!!! Illegal op f0 ff 07\n", 24) = 24
>> write(4, "================================"..., 63) = 63
>> write(4, "CPU exception 0x06 err=0x0000000"..., 60) = 60
>> write(4, "================================"..., 63) = 63
>> write(4, "SIGILL while in vm86(): 11fe:a04"..., 34) = 34
>>
>> DEBUG tells me, that the instruction "f0 ff 07" is "LOCK INC WORD PTR
>> [BX]". If I replace the LOCK prefix with a NOOP (->  "90 ff 07"), the
>> illegal op and SIGILL don't occurs, but the application crashes (which
>> has
>> been foreseeable).
>>
> 
> My assembler guru told me the following:
> Most probably the error occurred earlier, the LOCK prefix is not allowed

> on this instruction. That your application crashes is another hint in 
> this direction.
> 
> My suggestion is to get the newest dosemucode from SVN at dosemu.sf.net,

> if you can use svn and compile dosemu yourself.
> 
> Reinhard
> 

Thank a lot for your reply.

I have downloaded the SVN and compiled it successfully. But I get the same
behaviour. The application is working fine in DOSEMU on several 32-bit x86
system (there are around 10 computers I aware of). The problem only exist
on the x86_64 platform.

Your assembler guru told that the LOCK prefix is not allowed for this
opcode. Can he provide me a hint to a document describing this ? If the
application is run under plain DOS, it works on all computers from 286 up
the newest ones. The only problem it had was a fast CPU bug which has been
fixed.

For this, I ask me, if this error is related to DOSEMU or the Linux Kernel
itself. Or the application is really using opcodes, which shouldn't work,
but does on real hardware...

Andreas

------------------------------------------------------------------------------
This SF.net email is sponsored by Sprint
What will you do first with EVO, the first 4G phone?
Visit sprint.com/first -- http://p.sf.net/sfu/sprint-com-first
_______________________________________________
Dosemu-devel mailing list
Dosemu-devel@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/dosemu-devel

Reply via email to