diff --git a/lib/fast486/opcodes.c b/lib/fast486/opcodes.c index de75b50a2ee..a3e16644001 100644 --- a/lib/fast486/opcodes.c +++ b/lib/fast486/opcodes.c @@ -5885,6 +5885,18 @@ FAST486_OPCODE_HANDLER(Fast486OpcodeLods) if (AddressSize) State->GeneralRegs[FAST486_REG_ESI].Long -= (Count - 1) * DataSize; else State->GeneralRegs[FAST486_REG_ESI].LowWord -= (Count - 1) * DataSize; } + + /* Update registers */ + if (OperandSize) + { + State->GeneralRegs[FAST486_REG_ECX].Long = 0; + State->GeneralRegs[FAST486_REG_ESI].Long += Count - 1; + } + else + { + State->GeneralRegs[FAST486_REG_ECX].LowWord = 0; + State->GeneralRegs[FAST486_REG_ESI].LowWord += Count - 1; + } } /* Read from the source operand */