From 981eca892f12df218e773b6b5aebed2a7f5c7549 Mon Sep 17 00:00:00 2001 From: ComputerSpieler <36859459+computerspieler@users.noreply.github.com> Date: Wed, 3 Jan 2024 14:44:02 +0100 Subject: [PATCH] Fix a bug in R/M 01 decoding In protected mode, like in real mode, when decoding an address like [ebp+...], the segment used must be SS, not DS --- decode.c | 1 + 1 file changed, 1 insertion(+) diff --git a/decode.c b/decode.c index 0219fd1..ca4821c 100644 --- a/decode.c +++ b/decode.c @@ -1364,6 +1364,7 @@ u32 decode_rm01_address(x86emu_t *emu, int rm) OP_DECODE("ebp"); DECODE_HEX2S(displacement); OP_DECODE("]"); + emu->x86.mode |= _MODE_SEG_DS_SS; return emu->x86.R_EBP + displacement; case 6: