diff --git a/InstructionSets/x86/Implementation/PerformImplementation.hpp b/InstructionSets/x86/Implementation/PerformImplementation.hpp index a12bd65ae..0016495bd 100644 --- a/InstructionSets/x86/Implementation/PerformImplementation.hpp +++ b/InstructionSets/x86/Implementation/PerformImplementation.hpp @@ -246,10 +246,16 @@ template < case Operation::LAHF: Primitive::lahf(context.registers.ah(), context); return; case Operation::LDS: - if constexpr (data_size == DataSize::Word) Primitive::ld(instruction, destination_w(), context); + if constexpr (data_size == DataSize::Word) { + Primitive::ld(instruction, destination_w(), context); + context.registers.did_update(Source::DS); + } return; case Operation::LES: - if constexpr (data_size == DataSize::Word) Primitive::ld(instruction, destination_w(), context); + if constexpr (data_size == DataSize::Word) { + Primitive::ld(instruction, destination_w(), context); + context.registers.did_update(Source::ES); + } return; case Operation::LEA: Primitive::lea(instruction, destination_w(), context); return; diff --git a/OSBindings/Mac/Clock SignalTests/8088Tests.mm b/OSBindings/Mac/Clock SignalTests/8088Tests.mm index d5a84da74..1272f9648 100644 --- a/OSBindings/Mac/Clock SignalTests/8088Tests.mm +++ b/OSBindings/Mac/Clock SignalTests/8088Tests.mm @@ -348,6 +348,7 @@ class FlowController { void jump(uint16_t segment, uint16_t address) { registers_.cs_ = segment; + registers_.did_update(Registers::Source::CS); registers_.ip_ = address; }