Likely opcode execution bug

Nikolai Zhubr <[email protected]> Sun, 22 Aug 2021 16:47:32 +0300
Newsgroups gmane.comp.emulators.bochs.devel
Message-ID <[email protected]>
Hi all,

I think I'm observing a bug in the execution of the following 
instruction (in 16-bit real mode):

mov dword ptr cs:[si+3], 0x0104d041

What I see is that beside the expected memory location write, some 3 
additional stray writes of the same dword value happen to nearby 
locations with a step of a few bytes. These additional memory changes 
can be seen in physical memory dump in debugger and are also visible 
inside the VM, but memory write watch does not trigger on them, which 
kind of supports my suspiction that something goes incorrectly.

I'm using version 2.6.11 built on linux x86_64.

The instruction in question is not very complicated itself, but one 
thing I'd note, it has a surprisingly long opcode:

66 2e c7 44 03 41 d0 04 01

The issue is fully reproducable here, but unfortunately when the 
respective code fragment is run seperately as a tiny standalone test, 
the strange additional memory writes do not seem to happen.

Any hints greatly appreciated,


Regards,
Nikolai